ウイイレのデータ解析自動化してくよ!Part7
■はじめに
- どうも ヤジュン です。
また、ウイイレのイベント増えてきましたね!
イベント備忘録用に作ったツイッターBot のフォロワーも増えてきました♪(現在230名)
■本記事の内容
-
今回は、解析ソフトのデータ管理をCSVだけでなく、データベースでも出来るように機能拡張したので紹介します。
本記事のソフトはpythonで作成しています。■参考URL
▼解析アプリの拡張機能一覧
- 前回記事から以下の機能拡張されました。
- プレイヤー認証機能
- データベースからのデータ読み込み機能
- 試合結果画像からメトリクスデータをCSVで出力する機能
- CSVのメトリクスデータをデータベースへ追加する機能
■データベース管理への背景
-
今まで、CSVファイルでデータ管理をしていました。
CSVによる管理は、オフラインでもデータ解析できるというメリットはあります。
しかし、今後マスターデータを育てるためには、各CSVファイルを マージ しなくてはいけません。めんどくさすぎる!
そこでデータベース管理へ移行するのです!
各プレイヤーの解析結果が、データベースに集約される仕組みを作ればマスターデータは、放置していても育っていきます。
■拡張機能毎の紹介
▼データべースどんな感じ?
●実際に移行するとこんな感じ↓
-
HeidiSQLを使ってデータを確認してます。
今までテスターから収集した150試合の結果を移行しました。
▼データベースからデータ読み込み
- ユーザー認証機能を付けました。
入力したユーザ名とパスワードがデータベースで管理されているものであれば、データを読み込めるようになってます。
●ユーザ認証からデータ操作はこんな感じ
- デモ操作なので、パスワードもデモ「Password」にしてます。
最初に私「Yajun」のデータを読み込んだ後、次に「Masataro」さんのデータを読み込んでいます。
ユーザが変わっているので、ゲージチャートとレーダーチャートの型が変わってます。
▼画像データからCSVファイル出力
- 試合結果画像からメトリクスデータを抽出して、CSVに出力するようにしました。
この機能の実現が一番難しくて工数がかかってます笑
●ユーザ認証からCSV出力までこんな感じ
- ユーザ名とパスワードを入力して、Startボタンを押すと、フォルダ選択画面が出てきます。
試合結果画像を入れているフォルダを選択します。
すると、試合結果画像が表示されるので、ユーザは自分がHome側かAway側だったか確認して、表示されるラジオボタンから自チームを選択します。
処理が完了すると、試合結果画像を入れているフォルダに「output.csv」が出力されて完了です。
●画像処理して指定しているフォルダの中身
▼データベースへ追加
- CSVファイルが出力されていることを確認してから「Apped」ボタンを押すとデータベースに追加されます。
●追加後のデータベース
- データベースを確認すると、最下段の行に「2対4」と「4対6」の試合結果が格納されています。
上の「●画像処理して指定しているフォルダの中身」で公開している画像と見比べていただくと、6枚の画像から抽出されたデータが入っているのを確認できます。
■残課題
-
前回記事で課題の棚卸しをしましたが、今回はそのうち2つを解消しました。
そろそろ、テスター向けにテスト版を配布したいとは思ってます。めっちゃバグでるんだろうな。。
個人の意見ですが、バグfixが一番成長する経験だと思っているので、ポジティブに捉えていきたいと思います。
■展望
-
1000試合分くらいのデータが集まれば機械学習も始めてもいいかなと思ってます。
今やっているのは、データビジュアライゼーションまでで、そこからの傾向は人間が考察しなくてはなりません。
この傾向判断までもソフトにやらせたいですね♪
pythonには、scikit-learnやTensorFlowなどの優秀なライブラリが揃っているので楽しみです。個人的に、〇〇選手と〇〇選手を対戦させた場合どちらが勝つのか!?みたいのをソフトにやらせてみたい!笑
そのためにはデータを集める仕組みとして、この解析ソフトが必要なのです。
■終わり
-
アプリとして最低限の機能は実装できたかなと思います。
解析のために、画像を集めるって面倒くさいとは思うのですが、
PS4で撮ったスクショを1つのフォルダにまとめてフォルダを指定すればいいので、
思ったよりも面倒臭さは少なめなのかな?と思ってます。 -
前回記事に対し、「データの収集はPS4から直接できるようにならないの?」というご質問を頂きました。
PS4のAPIを公開されている方もいるので、技術検討してみようと思います!
こういった声は貴重です!ご意見ありがとうございます。今回の記事はここまで!また次回をお楽しみに♪
■参考URL
-
HeidiSQLの機能と使い方を徹底解説!HeidiSQL導入のメリットは?ダウンロードから設定手順・接続方法もご紹介
Matplotlib - Tcl_AsyncDelete: async handler deleted by the wrong thread?
サーバサイドにおけるmatplotlibによる作図Tips
OpenCVが日本語パスを読み込まない
PythonでMySQLに接続する方法【初心者向け】
Windows 版 MySQL インストール手順
MySQL基本コマンド一覧まとめ
データベースの作成
【Python】MySQLにデータ追加
[Python] MySQLにアクセスしてデータベース操作を行う
MySQLでユーザー一覧を取得する方法 権限とパスワード一覧も取得!
Python で MySQLのテーブルに INSERT しても反映されない(丸2日無駄に!!)
mysqldbを介してpandas dataframeをデータベースに挿入するには?
pandasのDataFrameがto_sqlで保存できないときの対処法
Importing data from a MySQL database into a Pandas data frame including column names [duplicate]