AI競馬で回収率100%越えを目指して

はなむけ競馬場

python 競馬

【最新版】2歳未勝利戦で重要な要素【AI提案】

投稿日:

モデルの不備や追加したい特徴量が出てきたりして、【テスト開始】回収率170%超えのAI開発に成功【解説】を作成した時から随分モデルは変わりました。

当初170%だった回収率も、2歳未勝利戦のダートであれば500%を超えています。

とはいえ、まだ理論上であって、実際に使用しているわけではないので、どうなるかは未知数です

今週(2020/10/24)のレースから本格的に参戦できればと思っていますが、モデルを動かすにあたって直前にデータ収集が必要であるため、適切なプログラムを書いている途中で、まだ参加できるかどうかは微妙なところです。

さらに、即PATを操作して自動購入するプログラムについては、まだ手を付けていないので、手作業で購入しないといけません。

競馬ってやろうと思うと、半日・1日作業になってしまうので、せっかくの休日をつぶしたくないのが本音です。

モデルで予測された買い目を、そのまま即PATで購入して、自分はゲームするなり、他のことをやっているのが理想ですね。その間にお金を稼いでいてくれれば、言うことなしなのですが。

その日が楽しみです。

 

本題に移りましょう。

新たに作成しなおしたモデルも、Lightgbmを使っているので、Feature Importanceを出すことができます。

2歳未勝利戦のダートを予測するにあたって、どのデータが寄与しているかを表にすることが可能なのです。

前回記事でも同様の画像を張り付けていますが、マイナーチェンジしているので、ご確認ください。

やはり一番重要なのは、馬!!

図は以下の通りです。

一番最初に作成したモデルでは、走破距離_J(騎手が過去20戦で走った距離)が最も重要な要素となっていました。

一方、最新のモデルでは単純に過去5戦の馬の平均速度が、3位以内に入るかどうかに最も寄与しています。

馬の速度が重要なのは当たり前ですが、それでも走破距離_Jは2番目に重要という判断になっているのでまったく侮れない要素です。

個人的に変化が大きいなと思ったのが、「場所」です。

場所は競馬場を表しています。

中央競馬場(JRA)の競馬場しかとっていないので、京都、中山などどこの競馬場でレースが行われているのかというのが、わりかし影響しています。

わしかしというか、全160個を超える特徴量のうち、上位10%で効く特徴量なので、競馬予想には外せない要素です。

Youtubeなどで競馬の勉強をしていますが、競馬場ごとに特徴があるということはおっしゃっている方が多い印象でしたが、その説を後押しする結果が出たかと思います。

馬ごとに競馬場に相性があるのか、前走で特定の走り方をした馬が、これまた特定の競馬場でいい働きをするのかは謎ですが、どこでレースが行われるのかというのは、天気や馬場状態よりも重要なようです。

というよりも、天気や馬場状態を適切に数値にできていないために、あまり効いていない要素と判定されているかもしれません。

天気は基本的に、晴れ、雨、曇り、小雨、雪くらいの単純なものですし、馬場状態は良、稍重、不良、重の四通りしかありません。

同じ晴れだってめちゃくちゃ暑い晴れなのか、雲がかかった晴れなのかで意味が違ってくるはずです。

当日得られるデータではありますが、意外に細かく数値に変換できるわけではないので、入れなくてもいい特徴量かもしれません(馬体重を取るついでに一緒に取りますが……)。

 

競馬はブラッドスポーツ

使用している特徴量は全160個ほどで、そのうち血統に関連するのが60個程度です。

その競走馬の5代血統表の中にどの馬が含まれているのかというものですが、上図の半分近くを先祖の馬の要素で埋められています。

最上位の要素こそ直近の戦績を重要視しているようですが、上位2~30%あたりには大量の馬データが入ってきています。

どの馬から生まれてきたのかということを把握すれば、他の競馬ファンと大きな差をつけ、自分だけ回収率100%を超すこと個可能かもしれません。

まとめ

  • 馬の速度がやはり一番重要
  • 最重要ではないものの、血統情報は必要不可欠

-python, 競馬

Copyright© はなむけ競馬場 , 2021 All Rights Reserved Powered by AFFINGER5.