AI競馬予想師を作ってみた【回収率180%超えの予想師が2人完成】

AI競馬予想師を18人作り2人だけ生き残った実験。指数9と指数17が回収率182%超を達成
  • URLをコピーしました!

※この記事にはアフィリエイト広告を含みます。

目次

はじめに

AIで競馬予想をしたら、どうなるんだろう。

そんな疑問をそのまま実験にしてみました。Claude Codeを使って自分で競馬予想システムを作り、18人の予想師を動かして過去のレースで試してみたのです。

ただし、最初に明言しておきます。

この実験について
  • 過去のレース517本を使った仮想ベットの実験です(実際にお金は賭けていません)
  • 実購入に踏み切った部分については、自分のお金・自己責任でやっています
  • 仮想ベットと実購入の境界線は記事内で明確にします
  • 馬券の購入を勧める記事ではありません

結果は、18人中16人が脱落。生き残ったのはたった2人でした。

ただ、その2人がすごかった。回収率が2人とも182%超え

この記事では実験の全過程と、2人が生き残った理由を全部書きます。

コウタ

マジで2人しか生き残らなかったの!?

ルナ

マジで。でもその2人が強すぎた。続き読んでみて!

なぜ自作したのか&10人→18人になった経緯

指数1〜10からスタートし指数11〜13追加・14〜17追加を経て最終18人構成になったフロー図

きっかけは「試してみたかっただけ」

競馬が特別好きだったわけではありません。

「AIで予想したらどうなるか」という好奇心がどうしても消えなかった。2026年4月ごろ、Claude Codeで色々なツールを自作していたタイミングで、「じゃあ競馬予想も作ってみよう」と始めた感じです。

軽い実験気分でした。

既製ツールでは「中身が見えない」

最初は既存の競馬予想ツールや予想サイトも調べました。でも、すぐに壁にぶつかります。

既製ツールは中身がブラックボックスです。

「なぜその馬を選んだのか」「どの条件が重視されているのか」が一切わからない。うまくいかなくても改善できないし、うまくいった理由もわからない。それが嫌でした。

コウタ

なんで自作したの?既製ツール使えばよくない?

ルナ

中身が見えないと改善できないんだよ。自作すれば全部把握できるじゃない?

自作すれば「全部見える」

Claude Codeで自作すれば、予想のロジックを全部自分で設計できます。

どの指標を重視するか、どんな条件で予想を出すか、すべて自分で決めて調整できる。うまくいかなかったら原因を特定できる。これが自作の一番の理由です。

まずは10人でスタート(指数1〜10)

最初に作ったのは10種類の予想ロジック(以下「指数1〜10」と呼びます)。

それぞれ異なる考え方で設計しました。「人気順を重視する」「騎手で選ぶ」「コース適性を見る」など、アプローチが違う10人の予想師を作って同時に動かしてみたのです。

ところが、10人全員の回収率が80%以下という惨敗でした。

全員失速 → AI学習型3人を追加(指数11〜13)

「アプローチが固定されすぎているのかもしれない」と考え、AI学習型の予想師を3人追加しました(指数11〜13)。

過去のレースデータから自分で学習して、予想を組み立てるタイプです。

成績は改善しました。でもまだ回収率100%超えが出ない。

さらに4人追加(指数14〜17)

試行錯誤を続けながら、さらに4人追加(指数14〜17)。

異なるアルゴリズムを試したり、組み合わせ方を変えたりしました。

そして細部を調整してもう1人加え、最終的に計18人の予想師が揃いました。

コウタ

なんで18人にもなったの?それだけ試行錯誤したってこと?

ルナ

そう。「1人では心許ない、いろんな考え方を試したい」ってなると自然に増えちゃうんだよね。

517レース回した結果【16人が脱落】

517レース・18人中16人脱落・全体回収率61.5%。指数9が182.6%・指数17が182.5%で突出した棒グラフ

全体収支まとめ

18人の予想師を使って、過去のレースデータ517本で試してみました(仮想ベット)。

その結果がこれです。

指標結果
実施レース数517レース
予想師の数18人
脱落した予想師16人
全体の回収率61.5%(投資額の38.5%が消える計算)
回収率100%超えの予想師2人のみ

全体回収率61.5%というのは、かなり厳しい数字です。

仮に実際に同額ずつ賭けていたら、相当な損失になっていました。実験で終わってよかった、というのが正直な感想です。

ただ、この結果の中に光がありました。2人だけが回収率100%を大きく超えていたのです。

コウタ

16人も脱落!?全滅じゃん!!

ルナ

そうなんだよ。でもよく見ると2人だけ光ってる。まずは脱落した話から聞いてみて。

脱落エピソード1:指数10 学習しすぎて失速

指数10は最初、割と好調でした。

初期の成績は悪くなかった。ところが、データを重ねるほど成績が落ちていきます。

最終的な回収率は50.1%まで低下。

原因は「過学習」です。過去のデータにフィットしすぎて、少し条件が変わると途端に機能しなくなる。「教科書の問題は解けるけど応用が効かない」状態になっていました。

学習型の予想師が必ずしも強いわけではないと気づかされた事例です。

脱落エピソード2:指数15 当たるのに儲からないジレンマ

これが一番印象に残った脱落事例です。

指数15の「当たる確率」は18人の中でナンバーワンでした。当たる確率38%。他の予想師の多くが20〜30%台の中、ひとり頭抜けた的中率を誇っていました。

コウタ

え!当たる確率トップなのに脱落したの?

ルナ

回収率は74%だったんだよ。当たるけど儲からないって状態。

なぜこうなるのか。

当たる確率が高い予想師は、「当たりやすいレース」に絞って予想を出しています。絞り込む方向性は正しい。

でも、その「当たりやすいレース」は多くの人が注目するため、オッズが低くなりやすい。少額の配当が続いて、賭け点数と配当のバランスがマイナスになってしまっていました。

「当たる確率が高い」と「回収率が高い」は別の話なのです。これは競馬の構造的な難しさで、指数15の失敗から一番学べたことでした。

全員共通の弱点

生き残った2人を含め、全予想師に共通した苦手なシチュエーションもわかりました。

  • 阪神競馬場でのレース
  • マイル戦(1,400〜1,600m前後)
  • 稍重・重・不良馬場のレース

これらの条件では全員の成績が下がります。馬場状態が変わるときのデータが読みにくいこと、阪神のコース形態が独特なことが影響しているようです。

逆に言えば、これらの条件を避ければ精度が上がる可能性があります。

不得意な条件に手を出し続けることが、損失を広げていたのです。

残った2人の予想師【指数9・指数17】

生き残った2人のプロフィールカード。指数9王道型が芝・良馬場・東京/新潟/福島で回収率182.6%。指数17AI合成型が芝中距離・新潟で182.5%

指数9「王道型」のプロフィール

指数9は最もシンプルな設計思想を持つ予想師です。

複雑な機械学習は使わず、競馬の基本的な「王道条件」を組み合わせて予想を組み立てます。芝レースの基本データ、馬場状態の影響、実績ある競馬場のデータを重視するタイプです。

「シンプルで強い」を体現しています。

項目内容
タイプ王道型
得意な馬場芝・良馬場
得意な競馬場東京・新潟・福島
回収率(条件絞り後)182.6%

指数17「AI合成型」のプロフィール

指数17は複数のアルゴリズムを組み合わせた設計です。

単一の判断軸ではなく、複数の予測モデルの「意見を合わせた」ような動き方をします。距離適性とコース適性を組み合わせる点が特徴的で、芝の中距離戦に強みを持ちます。

項目内容
タイプAI合成型
得意な距離芝中距離
得意な条件新潟・中距離全般
回収率(条件絞り後)182.5%

2人だけが生き残った共通点

コウタ

この2人、何が違ったの?他の16人と。

ルナ

ヒントは「絞り込み」だよ。次のセクションで詳しく説明するね。

一見すると指数9と指数17は性格が異なります。王道型とAI合成型、アプローチが正反対に近い。

でも生き残った理由には共通点があります。それは次のセクションで説明します。

なぜ2人だけ勝てたのか【条件を絞ったから】

Before:全レース予想で全体回収率61.5%。After:得意レースに絞って指数9が182.6%・指数17が182.5%に改善

「絞れば勝てる、広げると死ぬ」

この実験から得た一番の教訓はこれです。

全予想師に「全レース予想しろ」と指示すると、ほぼ全員が回収率100%を下回ります。阪神でも、マイル戦でも、稍重馬場でも、どんな条件でも予想を出し続ける。

得意でないレースに手を出し続けると、確実に削られていきます。

逆に「得意なレースだけ予想する仕組み」を組み込んだとき、成績が劇的に変わりました。

指数9の成績:芝×良馬場×東京/新潟/福島

指数9に対して、条件を絞った設定を適用しました。

  • 芝レースのみ
  • 良馬場のみ
  • 東京・新潟・福島での開催のみ

この3条件に絞った結果がこれです。

回収率 182.6%

全体回収率61.5%から、一気に3倍近くまで跳ね上がりました。

「得意なレースだけ予想する仕組み」を入れる前と後では、まったく別の予想師になっています。

指数17の成績:芝中距離×新潟・中距離全般

指数17も同様に条件を絞りました。

  • 芝のレース
  • 中距離(1,800m〜2,200m前後)
  • 新潟競馬場、または中距離全般

回収率 182.5%

指数9とほぼ同じ数字です。得意なフィールドに特化することで、こちらも安定した成績を出せるようになりました。

コウタ

絞っただけで回収率が倍以上になるの?!

ルナ

「広げると死ぬ」の逆が「絞れば生きる」ってこと。得意な土俵でだけ戦うのが大事なんだよ。

猫キャラ化の計画(予告)

この2人の予想師、いずれ名前と性格をつけて「猫キャラ」として見せる計画を温めています。

番号だけだとわかりにくいですし、指数9・指数17の個性が際立ってきたので、キャラとして伝えたほうが面白いと思っています。

そのキャラ化の進捗と実購入の結果は note で報告していきます。

実際に馬券を買うとどうなる?【実購入フェーズ】

仮想ベット実験フェーズ(過去517レース)から実購入フェーズへの移行を示す図

ここまでは「仮想で試した実験フェーズ」

ここまで書いてきた数字は、すべて過去のレースデータを使った仮想ベットの結果です。

実際に馬券を買ったわけではありません。

「517レース分のデータを使って、もし賭けていたらどうなったか」をシミュレーションした結果です。過去データで試した実験と、リアルタイムの実購入はまったく別物です。

コウタ

じゃあこれってまだ過去データの話ってこと?

ルナ

そう。過去データで試すのはスタート地点。本当の実力は現在進行形のレースでしかわからないんだよ。

ここから先が「自分のお金での実購入」

過去のレースで182%超えを叩き出した2人を、実際のレースに出してみたくなりました。

というわけで、指数9と指数17が出すレコメンドを参考に、自分のお金で馬券を実購入するフェーズに移行しています。

これは完全に自己責任です。

過去データでの結果がよかったからといって、今後も同じ成績が続く保証は一切ありません。実験的な取り組みとして進めていることをあらかじめ明記しておきます。

どこまで通用するか、未知の領域

正直なところ、どうなるかわかりません。

過去のレースで良い成績を出したシステムが、リアルタイムでも通用するとは限らない。馬場状態も、出走メンバーも、毎週違います。

ただ、それを確かめてみたい。

「AI予想師を作って、実際にどうなったか」という報告を続けることが、この実験の価値だと思っています。

続きはnoteで【実購入ライブレポート開始】

指数9・指数17の実購入結果をnoteでリアルタイム報告中のCTA画像

実購入の結果はnoteで継続レポートします

今回の実験は「継続」が大事です。1週、2週と積み上げないと、本当の意味での結果は見えてきません。

そこで note を使って、実購入の経過をリアルタイムで報告していくことにしました。

指数9と指数17が出した予想・実際に買った馬券・結果・反省点をそのまま公開します。

2人の活躍をリアルタイムで追いたい方へ

指数9(王道型)と指数17(AI合成型)がどんな戦い方をするのか。どのレースで輝くのか、どこで躓くのか。

コウタ

note見にきてね!リアルタイムで結果を追いたい!

ルナ

失敗も含めて全部さらけ出すから、本当に役に立つかどうか確かめにきてよ。

週次で更新予定です。良い週も悪い週も、そのまま書きます。

\ 実購入レポートを毎週更新中 /

まとめ

AI競馬予想師を18人作って、過去のレース517本で試した実験でした。

  • 18人中16人が回収率100%を下回り脱落
  • 生き残ったのは指数9(王道型)と指数17(AI合成型)の2人
  • 2人とも「得意なレースだけ予想する仕組み」が決め手
  • 条件を絞ることで、回収率は182.6%・182.5%を達成
  • 過去データの結果は良好、次は実購入フェーズへ

会社員でも、Claude Codeを使えばAIで競馬予想師を自作して遊べる時代になっています。

失敗した16人からも、それぞれ「なぜダメだったか」という学びがありました。過学習で失速した指数10、当たるのに儲からなかった指数15。どちらも次につながる発見です。

実購入フェーズの結果は note で随時報告していきます。

※本記事は個人の実験記録です。回収率は過去のレースデータをもとにした結果であり、将来の利益を保証するものではありません。馬券の購入はご自身の判断・自己責任でお願いします。

AI競馬予想師を18人作り2人だけ生き残った実験。指数9と指数17が回収率182%超を達成

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!