マガジンのカバー画像

競馬予想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] 負ける馬を予想するモデルで的中率や回収率は向上するのか?

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

[競馬予想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用のハイパーパラメータチューニングライブラリです。 使い方の詳細は説明しませんのでこちらの公式をご

[競馬予想AI] 深層学習で着順予想に挑戦

前回までは機械学習による着順予想を行ってきました。今回からは深層学習(Deep Learning)による予想モデル作成を試していきたいと思います。 深層学習 概略深層学習は今まで紹介したboosting木などと同様、分類や回帰などを行うことができます。では深層学習を使うメリットはあるのかという話になってきます。深層学習を使うメリットとしては一見抽象的な情報でもデータの関連性を自動で抽出する点にあると思います。例えば画像分析の分野で深層学習は多く使われています。画像の1ピクセ

[競馬予想AI] ランク学習完結編~チューニングからアンサンブル学習~

前々回からランク学習による競馬着順予想モデルについて紹介しております。前回はランク学習モデルを3つ用意してアンサンブル学習を行ったことについて紹介しました。 この記事で使用したモデルはまだハイパーパラメータのチューニングを行っていませんでした。なので今回はチューニングを行った上で改めてアンサンブル学習を行った結果を紹介し、ランク学習についてはここで一旦区切りをつけることとします。 結果としては、3モデル中2モデルの性能向上に成功し、アンサンブル学習による効果も多少上昇しま

[競馬予想AI] ランク学習のバリエーションを増やしてアンサンブル学習すると?

前回は競馬データにランク学習を使用すると、なかなかイイ結果が得られたというnoteを書きました。 この記事の中で、targetというものを設定するお話をしました。これは、どのような基準でランク付けを行っていくかを決める変数です。前回ではtargetに「着順」を使用しましたが、このtargetの決め方には色んなバリエーションが考えられるというお話もしました。 ということで、色々なtargetを用いたモデルでアンサンブル学習するとどうなるか?というのが今回のnoteの主旨にな