ML4Keiba としてデータを集めるのはいいが、その後についてきちんと考えをまとめていなかった。 マイルストーンというほど定かではないが、現在考えているいろいろなことをメモとして残す。
What までは書いてあるが、実際の具体的な How については自分の頭の中にあるだけだ。 これもどこかきちんと出力しておきたいが……また別の問題が生じるかもしれないので、後々考えることにする。
内容
- 各種レーティング
- 血統
- 騎手成績
- 厩舎成績
- コース内外の有利・不利
- 脚質推定
- 例外処理
- 海外レース
- 同着・降着
- その他アクシデント
- 学習モデルの更新頻度
- 各データを比較したときの順位づけアルゴリズム
- パフォーマンスによる変動幅推定
- 体重による結果の変化
- サービスとしてローンチする前に
レーティング
馬の血統
馬ごとの血統については、どの馬についても確実に情報が存在しているし、時間が経っても変化しない。 レーティングの算出方法についてはいくつかやり方があるだろうが、おそらく良さそうな先例があるはずなのでそれを採用するべき(未だ詳しく調べていない)。
このレーティングさえあれば、新馬戦はもとよりその他のレースでも基礎基本となる議論が展開しうる。
Sire / BMS についても考慮し始めると重み付けに難航する予感がしている。 精度を高めるのは後だと割り切り、まずは各々の算出からはじめる。
最初から完璧なものを作ろうとすると挫折しがちなので、まずは深く考えず親の競走成績で比較する程度でよいだろう。 ちょっとずつ工夫できそうなところを増やしていくことを心がけたい。
騎手成績
各騎手には各々レース結果があるので、そこから統計値が出せるはず。 初年度の新人騎手については 1⃣ 考慮に入れない 2⃣ レースに参加する騎手のうち、相対的な位置に置いて考える などがあろう。 ある程度経験してみないとわからないということもあり、複数年度の騎乗経験に達するまではレーティング不問とする程度がいいかもしれない
個人の力量ではなく、斤量による有利不利を可視化できるだけでもありがたいかも
厩舎成績
所属によっては、出走傾向とか成績に偏りがあるものと思われる。 (私が知っているものだと、メジロ牧場の馬は天皇賞絶対主義だったとかそういう話)
あまり重要なデータとも思えない が、精度を高めるピースにはなりうるかもしれない。
内外の有利不利と脚質
レースごとの統計値、騎手ごとの統計値は出せるはず。 過去10年では内枠外枠それぞれどのくらいの勝率なのか?がわかるだけでかなり傾向は絞れるだろう。
ここに脚質推定が加わることで、展開予想にも通じうる。 例えば内枠が勝ちまくっているのは、単に短い距離を走ることになるからスタミナ勝負担っているという話なのか、それとも逃げ馬ばかりが抜け出しやすかったからなのかとか…… コースごとの傾向が抽出できると、かなり大きな検討材料となりうるだろう。
例外処理
同着や海外レース出走など、過去のデータがうまく正規化されない場合の対処を検討せねばならない。 現在のデータ収集スクリプトだと、その辺がうまく処理できていない疑惑がある。
学習モデルの更新頻度
やがては上記までの情報をモデリングして入力、ということが起こるのだろうが、そのモデルは逐次更新する必要があるかもしれない。
例えば、入力値に「出走馬とその枠、騎手、馬体重」を入れたい場合、前走までのデータも学習してある必要がある。 もしそうでなければ、出された予測が必ずしも正しいとはいえないだろう。 しかし、これだと週一ないし毎日モデル更新せねばならないかもしれない。 そうなるとリソース的にも危ういし、そもそも時間が足りなくなるかもしれない。
上記の入力に加えて、近走最大 4 走のデータも受け付けるようにすれば、少しは改善するかも? 言い換えれば、5走以上前のデータで学習して、直近4走のデータを入力として算出させる。 こういうアプローチなら、更新頻度が月一程度に抑えられそうな気がする。
といいつつ、この辺のメタな話は全然経験がないなのでテキトー漕いてる可能性が高い。 参考にはしないように………
各データを比較したときの順位づけアルゴリズム
モデルで機械学習云々よりも、まずは個々の統計データやレーティングが出せれば、その都度有利不利を算出することができそう。
パフォーマンスによる変動幅推定
馬が本来の力を発揮できたか 否かによって順位は変わるはず。 絶好調ならここまで、絶不調でも最低ここまで、という目安は需要ありそう。
うまく行ければ一着、もしだめでも3着という馬がいれば、買い目はかなり変わってくるだろう。
体重による結果の変化
インタラクティブにやるべきものとして、前走と体重が同じ場合と比較してどのように結果が変動するのか?を知りたい。 (馬体重は直前にしか知ることができない、事前にシミュレーションできるツールは現時点ではなさそう)
サービスとしてローンチする前に
note 等で予想を書いてメインレースだけ課金させるというのが良さそう。
それまでの予想は課金するかどうか検討材料として提供する。 そこでお金が集まればサービスとしてやれる確信になるし、ダメそうなら撤退する選択肢が取れる。
→ リスクを測る装置として取り組むのが良さそう
まとめ
現状の考えをまとめた。
なにはともあれ、レーティング算出から始めてみて、それをもとに予想する記事を note なりで書いてみて、実際にどのくらいイケるか試すのがいいだろう。
あたってくだけつつ、試行錯誤を繰り返すしかない……!