~Linkin馬Lab~

パソコン系、DIY系を紹介します

【Pythonで競馬AI】実際に予想してみる 2021/6/26絶賛公開中

Pythonで競馬AIを自作してみた

 

 

 

突然ですが、「Python」ってご存じでしょうか。

今のプログラム業界では超メジャーな言語のひとつです。

Python - Wikipedia

私は仕事で機械設計を行っていますので、プログラムは大学の単位でC言語をちょこっと齧った程度の知識でした。ただ最近は機械設計の分野でもビッグデータ活用や機械学習などの分野でプログラミングが少しだけ身近になってきました。

ということで2021年5月からPythonを学び始めたのですが、いかんせん目標がないと勉強がはかどりません泣

ですので私の趣味第一位のジャンクいじり、ではなく第二位の競馬のため。競馬AIを自作してみました。

ですがどのくらい当たるか未知数(ここ数週で練習する限りはまずまず良さそう)ですので、このブログで予想と検証を行っていきたいと思います。

結果が良さそうでしたらAIの内容についても公開していきたいですが、まだまだ成長途上ですのでその辺はご了承を。

毎週予想しながらその結果をAIの再学習に使用する。これを繰り返すことで正答率が上昇していくことを期待しています。

 

競馬AIの考え方

私が競馬AIを作るにあたり、何人かの先駆者の方々のAIの考え方を参考にしました。

基本の学習データは、netkeibaのHPから過去の全レースデータ5年分から3着内に入っている馬のデータを学習し、これを元に未発走レースの馬から3着内に入る可能性の高い馬を【prediction 3着内率】としてプロットしています。

 つまり【prediction 3着内率】=0.7の馬は70%の確率で3着内に入るはずということです。

またこのプログラムの今までの正答率を見ると、1日の後半(9~12R)の正答率が高いという特徴があります。前半のレースは未勝利戦が多く、戦績の少ない未勝利戦はAI予想に向かないということだと思います。

そのためひとまず9~12Rに絞って予想を公開してみます。

 

2021/06/26 東京9R 清里特別

 f:id:satoro_0721:20210625232333j:plain

prediction 3着内率1位→馬番1

【買い目】 複勝1(前日7番人気)×100円

 

2021/06/26 東京10R 日野特別

f:id:satoro_0721:20210625232336j:plain

prediction 3着内率1位→馬番12

【買い目】 複勝12(前日2番人気)×100円

 

2021/06/26 東京11R 江の島S

f:id:satoro_0721:20210625232349j:plain

prediction 3着内率1位→馬番2

【買い目】 単勝2(前日1番人気)×100円

 

2021/06/26 東京12R 3歳以上1勝クラス

f:id:satoro_0721:20210625232356j:plain

prediction 3着内率1位→馬番3

【買い目】複勝3(前日7番人気)×100円

 

2021/06/26 阪神9R 三木特別

f:id:satoro_0721:20210625232402j:plain

prediction 3着内率1位→馬番6

【買い目】馬連6-7(前日2番人気-1番人気)×100円

 

2021/06/26 阪神10R 水無月S

 

f:id:satoro_0721:20210625232414j:plain

prediction 3着内率1位→馬番8

【買い目】単勝8(前日2番人気)×100円

 

2021/06/26 阪神11R 天保山S

f:id:satoro_0721:20210625232421j:plain

prediction 3着内率1位→馬番13

【買い目】複勝13(前日6番人気)×100円

 

2021/06/26 阪神12R 3歳以上1勝クラス

f:id:satoro_0721:20210625232427j:plain

prediction 3着内率1位→馬番4

【買い目】ワイド4-14(前日2番人気-4番人気)×100円