マガジンのカバー画像

競馬予想AI開発記

21
競馬予想AIの開発記事をまとめています。現在は無料でご覧いただけます。
運営しているクリエイター

記事一覧

[競馬予想AI] ベイジアンによる勝馬予想

この記事は、ベイズ統計を用いて勝ち馬を予想してみようという内容です。 勝ち馬を予想するための情報を追加していき、ある馬が勝つ確率を更新していくベイズ更新によって勝ち馬を予想してみます。 今回は2023年の根岸Sを例に計算します。 ベイズの定理まずはベイズの定理の確認です。 次式がベイズの定理で、事前確率を更新(ベイズ更新)して馬が勝つ確率を求めます。 P(H|D) = P(H) × ( P(D|H) / P(D) ) P(H):Hである確率(事前確率) P(H|D):

[競馬予想AI] 走破タイムから馬の強さは測れるか?【予想編】

走破タイムから各馬の強さを測ることはできるかというシリーズです。 今回は、前回推定した基準タイムを利用して着順の予想ができるか実験をしてみます。 ▼前回、基準タイムを推定した記事はこちら 基準タイムと走破タイムだけで予想する早速、前回つくった基準タイムを使って今レースの走破タイムを計算して着順を予想してみます。 予想方法 前走の基準タイムと走破タイムとの差を使って、今レースの着順予想をしてみます。単純に、前走の基準タイムと走破タイムとの差をとり、この値を降順にソートし

[競馬予想AI] 走破タイムから馬の強さは測れるか?【基準タイム作成編】

走破タイムから各馬の強さを測ることはできるかというシリーズです。 初回は、馬の強さを測る前段階として基準タイムを作成していきます。具体的には、ベイズ統計モデリングにより基準タイムを推定します。 走破タイムに影響する要素(仮)走破タイムを見たとき、どのようにすれば馬の強さが分かるでしょうか。もちろん速ければ速いほど良いですが、競馬では様々な要素が走破タイムに影響するため、同じ距離でも単純に比較することはできません。 走破タイムに影響する要素として、次のようなものが考えられま

[競馬予想AI] レース展開を考慮してAIの性能を上げたい

今回は各馬の脚質を考慮してレース展開を特徴量に加えるとAIの性能は上がるか?というお話です。 競馬予想においてレース展開が読めればほぼ予想ができたようなものだと言われたりしています。ということは、レース展開を適切に予想できればAIの性能はかなり上がるはずです。 レース展開とは具体的にどういうことか?レース展開とはつまりどういうことでしょうか?簡単にいえば「各馬の得意な位置取りで極力消耗無く最高のパフォーマンスでレースを終えるための各馬の駆け引き」のことではないでしょうか。

[競馬予想AI] 血統情報を追加してAIの性能を上げる

今までは出走する馬の情報のみでAIモデルを作成してきましたが、今回は満を持して血統情報を追加してAIモデルを作成してみようと思います。 血統情報を追加する理由競馬はブラッドスポーツと言われるほど血統が重要であることは競馬を嗜む方は当然ご存じだと思います。 今までのAIモデルは血統情報を使わずに作成しておりAIモデルの性能も伸び悩んできたところで、今回は血統情報を追加してみることにしました。 しかし、実際に血統がどれほど馬の力(成績)に影響があるのでしょうか?個人的には競馬

2021年競馬予想AI開発の振り返り

早くも2021年もあとわずかになりました。 2021年4月から本格的にnoteを書き始め、競馬予想AIの開発記は15本、競馬予想は80本投稿してきました。ご覧いただいた皆様には改めてお礼申し上げます。 今回は競馬予想AI開発を中心に(しかしてない)2021年の活動をまとめました。 競馬予想AI開発を始めたキッカケ競馬予想AI開発をはじめたきっかけは機械学習の勉強でした。一般人にまで機械学習が利用できるように各種環境が整いはじめたため、その可能性に興味を持ち競馬予想を目標に

[競馬予想AI] 居残り勉強をするとはずしたレースも当てることができる?

競馬予想AIを使っていると(使っていなくても)どうしてもはずしてしまうレースというものは存在します。はずすレースの割合のほうが大きいのではないでしょうか。となるともったいないですよね。 そのはずしたレースをなんとかカバーできないかというのが今回のnoteです。 どうして予想を外してしまうのか機械学習では特徴量がすべてと言っても過言ではありません。回帰あるいは分類するために必要な情報が欠けていると予想ははずれてしまいます。ほかに、評価関数や評価指標、モデルの初期値によって学

[競馬予想AI] 負ける馬を予想するモデルで的中率や回収率は向上するのか?

今回は「負ける馬を予想して勝ち馬の的中率や回収率を上げることができるのか?」という、検証のお話です。 もう少し詳しく説明すると、勝ち馬予想モデルの出力から負け馬予想モデルの出力を差し引けば勝ち馬モデルの予想精度が向上するのではないかという仮説を検証していきます。 負ける馬を予想するモデルを作る早速、負ける馬を予想するモデルを作成します。今回はLightGBMで6着以下の馬とそうでない馬の予測を行いました。 y_train = [1 if i > 5 else 0 for

[競馬予想AI] オッズから正しく人気度を把握する

今日はオッズにまつわるお話です。 皆さんは競馬で馬券を購入するときにその馬がどれくらい人気かを確認すると思いますが、どのように確認しますか?おそらく、「オッズ」や「人気」を確認すると思います。オッズが小さければ人気が高いと判断しますし、人気が小さければ人気が高いと判断すると思います。でも、レース結果と自分のその馬に対する人気の感覚にズレや違和感を覚えたことはないでしょうか? 特にない方はお話はこれで終わりになります。ある方はもしかするとこれからお話するようなことが原因かも

[競馬予想AI] 第nレース目だけ参加すると回収率は上がる?

「馬券の買い方によって回収率を上げることができるか」という検証の一環として、今回は第nレース目に参加すれば回収率は上がるか検証しました。よさそうな買い方を見つけられればAIの性能をカバーしつつ回収率100%以上を実現できる可能性があります。 1~12レースで各馬券の的中率と回収率を調べるまずは各馬券について第1~12レースで回収率に差が出るか調査します(枠連は省略)。 下の表は過去のデータを現在のAIモデルで予測した結果です(6548レース分)。赤色の背景はその馬券で最も的

[競馬予想AI] オリジナル指数をつくってみた

競馬予想AIの開発noteを始めて丁度1年が経ちました! 続けられているのはご覧いただいている皆様のおかげです。今後ともどうぞよろしくお願いします。 そして、本日からTwitterを開始しました。 こちらでは開発中のつぶやきやお知らせ、レースがあるときはピックアップ予想などつぶやけたらと思います。ぜひフォローをよろしくお願い致します。 指数とは?本日のnoteはオリジナル指数をつくるお話です。 競馬で使用する指数では例えば「スピード指数」があります。この指数は馬の速さ

[競馬予想AI] 特徴量の選択と作成で精度向上を目指そう

今回は特徴量を選択、新規作成してモデルの性能向上を目指します。 前回はLightGBMによる予測を行いました。 また、同時にOptunaによるハイパーパラメータチューニングも行いました。 このモデルの性能は(ROC-AUC:0.7755)でしたのでこのあたりをベースラインとし、特徴量によってどの程度性能向上ができるか見ていこうと思います。 特徴量作成の作業特徴量を作成するにあたってまず、特徴量はどのようにしてつくればよいかという疑問があるかもしれません。特徴量を作成する

[競馬予想AI] LightGBMで着順を予想してみよう

今回はLightGBMを使って予想をしてみたいと思います。 競馬予想AIの一番初めに使ったのはXGBoostでしたが、LightGBMとXGBoostは決定木でブースティングを用いる点は同じですが詳細な仕組みは少し異なります。詳細な仕組みについては割愛します。XGBoostとの精度比較や将来的なアンサンブルを考慮して今回はLightGBMで予想を行ってみようと思います。 LightGBMはランク学習の時に既に使用していますが、分類のアルゴリズムが異なります。 XGBoo

[競馬予想AI] 深層学習器の構造をhyperasで最適化しよう

前回の記事から、深層学習による競馬予想に着手しはじめました。 深層学習では層の設計やパラメータの設定など多くの設定を行う必要があるうえ、それらの設計・設定方針に明確なものがなく、最適な設計が困難だというお話をしました。 そこで今回は、hyperasを使って層の設計からパラメータの設定まで最適な設定を自動で探索してみようと思います。 hyperasとはhyperasはKeras用のハイパーパラメータチューニングライブラリです。 使い方の詳細は説明しませんのでこちらの公式をご