お金払ってんのに投稿しないのはもったいないの極みです。
「じゃあ何か投稿するか〜」とプログラミング初心者の自分が思いついたのが競馬AIの作成。
なんかネット上に色々競馬AIの記事あるけど、正直胡散臭い記事が多すぎるんですよね〜
じゃあ自分で作ってみるかという感じ。
メインの目的は競馬予測において血統理論とか色々あるけど、実際何が重要なんだろうってところを機械的な目線から究明することです。
プラスで利益が出せるようになれば最高ですね😇
もし、競馬AI作成を考えている方の助けになれば幸いです。
(と言っても初心者なので寛容な目で見てください笑)
ということで、作っていきましょう〜
競馬AI作成のプロット
まずは競馬AI作成のプロットを考えてみます。- データの収集
- データ取得先の検討
- データ取得方法の検討
- データの収集
- AIの作成
- 説明変数の検討
- 目的変数の検討
- 精度評価
- 購入方法の検討
- 期待値の算出
- シュミレーション
- 実戦
いや〜道のりは遠い…のんびりやろう
データ収集の準備
データ取得先の検討
まぁ色々な競馬サイトがありますが、データスクレイピングにおすすめなのはどうやらnetkeibaさんみたいです。
競馬してる人は利用している方も多いのではないでしょうか?
自分はプレミアム会員で普段から愛用させていただいております🙇♂️
迷惑をおかけしないように、短時間にリクエストを送らないよう注意ですね。
データ取得方法の検討
netkeibaのサイト上には大量のデータがあるので、どうデータを取るのが1番良さそうか検討します。
まずは使えそうなデータを列挙してみます。
- 出馬表
- 馬柱(プレミアム会員なら9走まで取得可能)
- 競馬新聞
- 血統データ
- 調教データ
- タイム指数データ(近5走)
- レース結果データ
- オッズデータ
上記に加えて、風速と風向のデータをどこかしらから取ろうと思います。
(暗中模索の現在においてはとりあえず色々データが欲しいです)
一つずつ精査していきましょう。
出馬表

- 枠
- 馬番
- 馬名
- 性齢
- 斤量
- 騎手
- 厩舎
- 馬体重(増減)
- 人気
- レース情報諸々
- 発走時刻
- 芝/ダート/障害
- 右回り/左回り
- 馬場状態
- 何開催目
- 開催場
- 何日目
- レースクラス
- 賞金
しかし、このあたりのデータって、次の馬柱や競馬新聞でも取れそうです。
馬柱

- 開催日
- 開催場
- ランク(GⅠとか)
- コース(芝、ダート、障害)
- 距離
- コース状態
- タイム
- 距離
- 頭数
- 着順
- 人気
- 騎手
などなどたくさん取れそうですが、色々みてみると結構データが取りにくそうなんですよね〜 テーブルデータの中でさらに空白文字で区切られてるのも取りにくそうだし、
毎回全部埋められてる訳じゃないし、失格とかなった時は着順(数字)じゃなくて「取」とかになっててるし。(データ抽出時に正規表現使いにくそう) それならば、各レース結果データを集めて、そこから該当馬のデータを抽出する方が良い気がします。
もしくは次の競馬新聞ですね。
競馬新聞

こちらはデータの入り方が綺麗そうです(まぁ実際に取ってみるまでわかりませんが笑)。
それに加えて前3Fが入ってるのが嬉しいですね。
取れるデータはそこ以外は、馬柱とあんまり変わらないかも知れないです。
出馬表のデータもこれで取れそうです。
血統データ

にしても、色ごとに分けられてるから、これを取るのは結構面倒そう…
「background colorごとに〜系」という感じで対応表を作らんといけなさそうです。
(水色ならサンデーサイレンス系みたいな)
調教データ

- 調教日
- 調教コース
- 調教馬場
- 調教乗り役
- 調教タイム
- 位置(イマイチ意味は分かってない笑)
- 脚色
- 評価
タイム指数データ(近5走)
プレミアム会員限定なデータの気もするので、雑にデータを隠してます。すみません。。。

- ペース
- タイム指数
- 馬場指数
このデータだけでもプレミアム会員に入る価値アリだと思います。(媚び売り)
レース結果データ

- タイム
- 後3F
- コーナー通過順
- 着順
- 払出金額
オッズデータ

- 単勝オッズ
- 複勝オッズ
一応取っておきます。
まとめ
とりあえず取得するデータは以下の感じですかね?- 競馬新聞データ
- 血統データ
- タイム指数データ(近5走)
- レース結果データ
- オッズデータ
気合いを入れてデータ取得していきます。
次回からはデータの取得についてまとめていこうと思います。
コメント