自分用のメモ
(飽きなければ)今後実装したいことをメモ。
目次
機械学習
2020-21 シーズン中は EIOG で乗り切るつもりだけど、Excel 手計算ではこれ以上の進展も大して望めないので、精度向上と自分の学習のために機械学習方面に切り替える予定。LightGBM か R とか? ツールは深く調べてない。
スクレイピング
機械学習をするとして、素データ収集するのに手作業というのもそろそろ卒業したいしスクレイピングも必要になりそう。Python + Beautiful Soup が多そうな印象。
しかも B リーグ系で既に実施されている先達がいるので、大いに参考にさせていただける心強さもある。この場合は basketballnavi.DB に負荷をかけるわけにいかないので、公式ページからの取得のみを考慮する。
(追記)
今のところの成果 → 始めたての構文で書いており、はてブの書式にも慣れておらず読みにくかったため公開停止しました。キレイにして別所にて再公開するかもしれません機会があれば。
ゲーム基本情報、ハイライト、プレイバイプレイ、ボックススコアと、スクレイピングで取りたいデータは殆ど取れるようになったのでこの章は無事完了とします。
ターニングポイント分析
ここまでの計画で既にお腹いっぱいではあるのだけど、もし実現出来たら面白いかなというアイデアだけ考えているのがターニングポイント分析。
Bリーグの過去の試合のゲームレポートを見て「何をスクレイピングしようか」と考えて、[ボックススコア] の試合全体だけじゃなく1Q~4Q まで取って傾向や比重をつけてもいいし、[ゲームリポート] タブも値として蓄積して分析に役立てたい。
ターニングポイント分析としては、上記の試合の例では、3Q までは一進一退の攻防が続いていたが最終的には20点差まで開いている。
[プレイバイプレイ] の [グラフ] を見れば、3Q 残り4:22 の篠山選手のエンドワンを境に徐々に差が開いていることが分かる。
人間の目で一つずつ確認していくことは勿論できるのだけど、これを機械的に判定するのも面白いと思う。例えばこのグラフの微分を取って接線を計るとかで、前後の変化量を定量的に判断したい。
で、この時間ごとの点差を図るためには [テキスト] の方をスクレイピングするしかなさそうで、これがまた面倒そうなんだけれど、逆にこれを計算することで変化量が少ない時の相手チームのディフェンスの要因を評価できそうな気がする。バスケットはどうしても「得点」を軸に評価してしまいがちなんだけれど、「ここぞというときにディフェンスで相手の勢いを殺したぞ」という守備の好プレー評価項目を考えたい。
先ほどの例ではこのポイントが入るまでの時間が最も長いので、この間のディフェンスの項目を評価する(大塚選手 スティールx2、熊谷選手 スティールx1、カルファニ選手 ブロックx1)か、ディフェンス内容に対して「次の得点が入るまでの時間」を傾斜配点する、などが考えられる。