スロカス、競輪AIをつくる — 公開検証記

スロカスが競輪始めたけど全然当たらないので、
予想AI作って爆益目指すよ🤣🤣🤣

競輪AI予想ダッシュボードのイメージ
※イメージ画像です(こういうのを作って勝つ予定だった。数字はあくまで妄想 — 現実の数字は本文で🥺)
ひらめく筆者
筆者(ギャン中)
パチンコ屋は23時に閉まる。でも、ギャン中の夜はそこで終わらない — 探せばあるんですよ、深夜でもやってるギャンブルが。それがミッドナイト競輪でした😀
煽ってくる宙太
宙太
出たよ「新しい楽しみ」w それ楽しみじゃなくて負けの延長営業な。パチ屋が閉まってもまだ負けたいのかよ。……で、収支は?
落ち込む筆者
筆者
……結果は惨敗でした😮‍💨 スロットでは期待値のある台とか硬いところしか打たないのに、競輪になると根拠ゼロの雰囲気買い。自信のあった本命が最終コーナーで捲られて消えるのを見届けて、深夜1時にそっと投票画面を閉じる — 今日もマイナス🥺

§1💡 そこで私は考えた — AIで過去データを分析して、勝ち筋を見つけようと!!

もともとスロットを打っていた人間です。設定判別だ、期待値だと言っていたのに、ひょんなことから競輪に流れ着いて — 気づけば根拠ゼロで車券を買っている。ラインも脚質も分からん。新聞の記号も読めん。それでも買う。そして当たらない。

幸い、AIでWebサービスを作るのは趣味です。じゃあ自分の手で予想AIを作って、ごまかしの効かない方法で測ったらどうなるのか。確かめることにしました。

🤖 利用したAI
名前
Fable 5 — Anthropic社のAI「Claude」の現役最強モデル
ヤバさ
賢すぎて「悪いことに使われたらヤバい」って理由で、アメリカ政府に一回サービスを止められたことがある。そんな国が警戒するレベルの頭脳に、競輪で勝つ方法を聞きます
考える筆者
筆者
で、さっそく聞いてみました。質問は「競輪の予想AIって作れる? どんなロジック?」。ついでに同じ質問を、GPTとGeminiにもぶつけてみました🙂
GPT
GPT
作れます。①選手能力 ②ライン・展開 ③着順確率 ④オッズ期待値の4層構造で設計します。モデルはLightGBMで十分。最大の難所はAIそのものより、出走表・並び・オッズを集め続ける仕組みです。
Gemini
Gemini
個人でも十分に作成可能です! 実際に回収率100%超えを目指して運用している開発者はたくさんいます。競輪はライン(人間関係)の要素が強いので、AIの真価を発揮しやすいジャンルですよ。
期待する筆者
筆者
いいね、いける気しかしない😀 で、現役最強AI・Fable 5の答えがこちら。
Fable 5
Fable 5
作れます。核心は競輪特有の「ライン」で、選手個人の強さだけで学習させると精度が頭打ちになります。モデルはLightGBMが定番。

ただし先に言っておくと、的中率と回収率は別物です。競輪は控除率25%なので、本命ばかり当てても回収率は100%を切ります。AIの仕事は「当てること」ではなく、オッズと実力の乖離を見つけること。あと、検証で嘘をつくと全部無駄になります

※各回答は実際のやりとりの要約です(原文は長いので抜粋)。

……1人だけ何やら不穏なことを言っている。でも全員「作れる」と言うなら作る。というわけで、まずはデータ集めからです。

📝 まとめ:AIは全員「作れる」。ただし"儲かるか"は別問題

§2📊 まず、データを集めまくった — 3年分・82,725レース

Fable 5の指示どおり、まずはデータ集めから。過去3年分の82,725レース — 出走表、選手の成績、並び(ライン)、結果。合計で約54万人分の出走データになりました。スロットで言えば、全国のホール3年分の差枚データを全部拾ってくるようなものです。

さらに、毎朝8時半にその日の出走表・選手の調子・並び予想・締切12分前のオッズ・夜には結果まで、全部自動で取ってくる仕組みも構築。私が寝ていても、データは毎日勝手に増えていきます。

検証の3つのルール — ここをサボった予想AIは、全部嘘になる

Fable 5が最初に言っていた「検証で嘘をつくと全部無駄になります」。具体的には、この3つを徹底しました。

ルール意味
未来を見ない予想には「そのレースの発走前に知り得た情報」しか使わない。混ざっていないか毎回自動チェック
買えるオッズで計算回収率は「実際に買える時点のオッズ」で計算する。締切後の確定オッズを使うと成績はいくらでも盛れる — 世の「回収率124%」記事の多くがこの罠
自分で採点させない作った本人(AI)の自己申告は信じない。別のAIに毎回チェックさせる — 実際これで大バグが1個見つかりました(後述)

※予想を出すのはLightGBMという専用の機械学習です。ChatGPTに出走表を貼って「予想して」と聞くタイプのAI予想とは別物。

§3🚴 なぜ競輪か — 「ライン」という因果

対象は公営競技ならどれでもよかったのですが、比較して競輪を選びました。競輪には他の競技にない「ライン(並び)」という構造があります。7人はバラバラに走るのではなく、数人が隊列を組む。「①が逃げる → 直後の②が有利 → ③も残る」というように、着順に因果の連鎖があるのです。

選手データを個別に眺めるだけのAIではなく、この「ライン → 展開 → 着順」の構造を特徴量にできれば、一段深く読めるのではないか — それがこのプロジェクトの技術的な賭けでした。ついでに言うと、出走が7〜9人で組み合わせが手頃、特徴量も100〜300で足りる。機械学習の題材として「ちょうどいい」サイズです。

§4⚠️ 大前提 — 競輪は「当てるゲーム」ではない

作り始めてすぐ、いちばん大事な前提にぶつかります。競輪はパリミュチュエル方式 — 払戻の原資は客の賭け金で、そこから25%が控除されます。つまり100円賭けると平均75円しか返ってこない。

「よく当たる」は勝ちを意味しない。オッズには既に"みんなの予想"が織り込まれていて、儲けるには市場の見積もりを25%以上上回る正確さで、割安な買い目を見抜く必要がある。

だからこのプロジェクトの目標は最初から「的中率」ではなく、期待値(EV) — 確率×オッズが1.00を超える買い目が実在するか、の一点に置きました。

§5🧪 検証① — AIは市場より賢いのか

最初の問いはこれです。「うちのAIの確率は、オッズが示す"みんなの総意"より正確なのか?」

モデルが一切学習していない期間(2025年7〜12月、12,698レース)の確定オッズを取得し、同じレース集合で予測精度(対数損失: 低いほど正確)を比較しました。

予測対数損失意味
AI単独1.4695市場に負ける
市場(オッズの総意)1.3858やはり強い
AI×市場の合成1.3837両方に勝つ

AI単独では市場に勝てません(これは競馬研究の古典的な知見の通りでした)。しかし市場の確率とAIの確率を最適比率で混ぜると、市場単独を上回った。この「AIの寄与分」が偶然かどうかを統計検定にかけると — p値0.0068で「偶然ではない」。つまり:

このAIは、8万人の賭けの総意に対して、統計的に本物の「上乗せ情報」を持っている。

ここまでは、正直かなり嬉しい結果でした。問題は次です。

§6💰 検証② — では、勝てるのか

「統計的に賢い」と「儲かる」の間には、控除率25%という巨大な溝があります。合成確率でEV(確率×オッズ)を計算し、EVが高い買い目だけを選んで買ったら回収率はどうなるか — 6,174レースでシミュレーションしました。

EV — 期待値の現在地(1.00を超えたら黒字圏)
うちのAIの到達点は
損益分岐の1.00には、届いていない。
0.75 市場平均
0.87 現行AIの最良
1.00 損益分岐
まともな買い目でAIが主張できた最大EVは 0.87。1.00超えを名乗った候補は、確率計算の端の歪み(人気薄×巨大オッズ)だけで、実際に買ったら回収率0%でした。

EV上位の買い目を実際に買った場合の回収率(まともなオッズ帯に限定・学習に使っていない後半期間):

買い方点数回収率誤差(95%)
EV上位 0.1%56113.6%±110pt = 雑音
EV上位 1%56468.1%±24pt
EV上位 5%2,82474.5%±9.8pt
市場平均(参考)75%

つまり、AIが最も自信を持つ買い目でも、回収率は市場平均圏(75%前後)から抜け出せない。113.6%という数字も56点の偶然の範囲(誤差±110pt)です。

結論: 統計的に本物の優位は、経済的には薄すぎた。市場に25%勝つ必要があるゲームで、上乗せできたのはその10分の1以下だった。

§7🎢 道中で起きたこと — 仮説は次々に潰れた

結論だけ書くと綺麗ですが、実際は仮説が潰れていく過程でした。いくつか紹介します。

§8📝 学び — 「AI予想」を見る目が変わる4つの事実

§9🚀 これから — 検証は続く(公開で)

プロジェクトは終わりではありません。「AIの上乗せ情報は本物(p=0.007)だが薄い」が現在地なら、次の問いは「上乗せを厚くする情報はどこにあるか」です。市場がまだ数値化していない情報 — 例えば:

どの仮説がどう転んだかは、この場所と X で数字ごと公開していきます。うまくいく保証はありません — が、うまくいかなかった場合も、その数字ごと公開することだけは保証します。

爆益への道は、思ってたより遠かった。
それでも検証は続けます — 数字ごと、公開で。

週1回、仮説がどう転んだか(潰れた場合も)を数字付きで報告します。