世の中、競馬AIの開発ブログ記事は沢山あるわけで、中には自称回収率100%超えたというものもあるが、ほぼすべての記事では単にバックテストで回収率100%超えたという話であって実戦では全く役に立たない。また間違った特徴量やバックテストでの回収率100%超えは容易に達成できるので、共通して散見される間違いであろう点を簡単にまとめてみた。
@特徴量のリーク
・最終オッズや最終人気を当該レースの特徴量としてしまっている。
→最終オッズや最終人気は投票締切以前には分からないので当該レースの特徴量に含めてしまうことはリーク。
最終人気オッズを当該レースの特徴量としている記事は即座に無視することをお勧めする。
・前走履歴データに当該レースを含めてしまっている。
→すでに結果が分かってしまっているので的中率回収率が爆上げするのは当然だ。
・成績や勝率・タイム等を集計した特徴量を当該レース以降を含む最新のもので計算してしまっている。
→常に当該レースより前のデータのみで集計する必要がある。
・JRA-VANの今回の脚質という項目を特徴量にいれてしまうとリークしてしまう。(単に自分の経験)
→レース後に入ってくる項目のため、前走までの履歴にしか使えない。
※自分は初期の頃これで相当やらかした。
スクレイピングの場合に脚質情報がどうなのかは不明。もしレース終了後に書き換えているのであればリークするだろう。
Aバックテスト・購入シミュレーションの問題
・過去結果を含む特徴量を使った最新モデルで過去レースのバックテストをおこなってしまっている。
→既に結果が分かってるので丸暗記してるだけ。バックテストの意味ない。
※過去レースを予測する場合、それ以前の特徴量のみで生成したモデルを使用しないといけない。
・確定配当を使った予測回収率を用いて購入シミュレーションをおこなってしまっている。
→予測回収率による購入判断がある場合は、締切前の時系列での配当で予測回収率を計算する必要がある。
※何気にこのハードルが高い。単勝複勝枠連馬連などは時系列データ提供があるので良いが、他の券種では存在しないので蓄積には時間が必要である。
※自分の場合は、AI開発とは関係なくたまたま2017年から全券種の配当データを蓄積していたので助かった。
・単純に回収率の算出方法がおかしい。
→甚だしいのになると、レース毎の購入シミュレーションすらせずに、予測結果の的中率×平均配当で回収率を算出しているものすらある。頭おかしいレベルなのでこういう記事は無視しよう。
Bオーバーフィッティングの問題
バックテストは大なり小なりオーバーフィッティングしているものである。
特に購入レースを絞る手法の場合は、確率の上振れを掬っているだけなので未来においてその高回収率はほぼ再現しない。
本質的なファクターを捉えている場合もあるが、常にバックテスト回収率>実戦回収率となるのである程度のマージン確保が必要。
またバックテストで回収率100%超えたと言ってすぐに予測を販売する輩もいるが正気の沙汰とも思えない。
良心があるのなら少なくとも半年〜1年くらいは実際に自分のお金で運用してみてバックテスト通りに勝つことを確認してから販売するべきだろう。
まぁ実際に勝てるのであれば、雑所得から事業所得への転換を図りたいタイミング以前での予想販売はしないだろうけど。
間違いではないがどうかと思う点
・スクレイピングでデータを持ってきている。
→よくTwitterで更新止まりましたーという競馬AIがあるが、大体原因はコレ。
他社のサイトマップやサイトデザインに依存しているので不安定なのは当たり前。
そもそも他社のサーバに負荷を掛けるわけだし、オッズ等頻繁に更新したいデータもあるので、そこはケチらず素直にデータを買う方が良い。
・実戦やフォワードテストがうまくいかないとすぐにころころとモデルを更新する。
→モデルを変えてしまうと実戦やフォワードテストの統計データがすべてリセットされるわけだがどうなんだろう?
馬券をうまく買うためには、モデル精度やバックテスト結果より実戦での統計データのほうが重要。
バックテスト結果や過去のシミュレーション結果なんて気休めか自己満足にしかならない。
もっと言えば
単勝回収率100%を超えるモデルがベターなのは間違いないが、それ以下ならば
単勝回収率80%のモデルより
単勝回収率50%のモデルのほうがうまく馬券が買えるであろう(笑
posted by ギャンブルエンジニア at 05:01|
Comment(0)
|
開発めも
|

|