趣味の競馬について少し書いてみようと思います。競馬の攻略法ではなく、自分が重賞1レースを「モデル出力+当日材料+制約付きの意思決定」で解いたあと、どこが正しくてどこで壊れたかをログとして残すための記事です。ギャンブルを勧める意図はありません。予測システムを現場に出すときによくある、「スコアは悪くないのに最終判断で損をする」パターンのケーススタディとして読んでください。趣味の結果報告ではなく、意思決定の失敗モードを冷静に切り分ける練習です。
設定:レースと目的関数
対象は 2026年9月6日・阪神11R 産経賞セントウルステークス(GII)芝1200m です。目的関数は単純で、「1着候補を厚く守りつつ、2・3着に届きそうな相手を制約の中で並べる」ことでした。単勝を一点で当てにいく話ではなく、組み合わせの再現性をどう設計するか、に近い問題設定です。
買い目の中心は、3番フリッカージャブを軸にした3連単(軸の1着を固定し、2・3着を相手から並べる流し。さらに軸が2着・3着に来た場合も含めるマルチ)と、3連複の流し(軸+相手の組み合わせ)です。相手に入れた例は 5・9・11・13・16。1番ママコチャは入れていません。ここが後から効いてきます。点数を増やせば拾える、という話にすると学習が薄まるので、当時の制約どおり「切った判断」を主役にします。
信号の整理
使った材料は、大きく四つです。
第一に、独自に学習した芝1200向けランキングモデルのレース内偏差スコアです。馬ごとのモデル偏差・補助スコア(対戦・タイム系をレース内偏差にしたもの)、およびその合算を見ました。合算上位の例としては、16タマモイカロス、5ダイヤモンドノット、3フリッカージャブが並びます。9ピューロマジックはモデル偏差だけ見ると中位ですが、補助スコアが高く、合算では候補の中心帯寄りの扱いになっていました。「平均点は平凡でも、特定の軸が強い」タイプの信号です。
第二に、当日の馬場傾向です。阪神芝は開幕週・良。前有利一辺倒ではなく、差しも届く混在、という読みでした。短距離でも「逃げ一択」に寄せすぎない判断材料になります。
第三に、オッズ推移です。市場がどこを厚く見ているか、モデルと一致する箇所/食い違う箇所をざっくり切り分けます。完全に市場へ追従するのではなく、一致を信頼のブースト、不一致を要検証フラグとして使う、くらいの粒度です。
第四に、馬体重です。とくに8ファストネットワークは当日 -28kg。モデル評価も低く、ここは消す根拠が揃っていました。
意思決定と制約
制約はいつもの個人運用です。点数を無限に広げられないので、「軸を守り、保険を残し、差し相手を厚くする」一方で、弱い根拠の馬は切る必要があります。モデルの上位を全部残すと券面が壊れ、逆に切りすぎると今回のような事故が起きます。
軸は 3番フリッカージャブ。モデル合算でも上位に入り、当日の材料とも大きく矛盾しませんでした。保険として残したのが 9番ピューロマジックです。偏差だけなら中位ですが、補助スコアが高く合算では中心帯寄りで、消すのが怖い、という直感をあえて残しました。差しが届く馬場読みもあったので、相手側は差し候補を厚めにしています。
切った側で重要なのは二頭です。8番ファストネットワークは体重-28とモデル低評価で除外。これは妥当でした。一方 1番ママコチャは、「包まれそう」というレース展開の直感で切っています。実績やスコアを真っ向から否定するほどの材料ではなく、配置リスクを過大に見積もった消去でした。今なら「薄い仮説は点数で薄く残す」側に倒します。
結果
着順は 3-9-1、つまりフリッカージャブ→ピューロマジック→ママコチャです。軸と保険は結果の1・2着に重なっていました。しかし3着の1番を相手から外していたため、中心にしていた3連単・3連複の形は成立しません。予測の近さと、券面としての失敗が同時に起きたレースでした。金額の話はしません。重要なのは、上流の順位付けと下流のフィルタが別レイヤだという点です。
ポストモーテム
正しかった点から先に書きます。軸3は妥当でした。保険9も、「偏差は中位だが合算では中心帯」という読み方は結果と整合しています。8を切った判断も、体重とモデルの両方で支持されていました。モデル上位の16や5を相手に残したのも、信号としては筋が通っています。馬場の「差しも届く混在」という前提も、少なくとも前だけに寄せない判断を支えていました。
間違った点は明確で、1番を弱い根拠で消したことです。「包まれそう」は仮説としてはあり得ますが、それを最終的な除外条件にするには証拠が薄かった。軸・保険が刺さっているのに全滅する、というのは典型的に、ランキング上位の候補に対する false negative(拾うべきものを落とした)のコストが跳ねた構図です。
言い換えると、モデルは「3と9を厚く見ろ」までは連れてきてくれたのに、私の意思決定レイヤが3着候補のしきい値を誤って引き上げた、ということです。予測誤差というより、制約下のフィルタ設計の失敗に近いです。精度指標だけ見ていると見逃しやすい、運用側のバグです。
一般化できる学び
競馬固有の話に閉じず、エンジニアリング側に引き戻すと三つあります。
ひとつめは、false negative のコストを見積もれということです。実績やスコアで上位にある候補を、説明しやすいが弱い根拠で落とすと、上流が正しくても下流でゼロになります。プロダクトでも、再現率(recall)を犠牲にしたルール追加が、全体KPIを壊すことは珍しくありません。
ふたつめは、モデルと市場が一致する箇所は厚く、片方だけの信号は薄く扱うことです。今回、軸3は複数信号が揃いやすかった一方、1の除外は私の展開仮説に寄っていました。一致箇所を守り、不一致箇所は「消す」ではなく「薄く残す/点数で表現する」ほうが、制約下でも壊れにくいです。
さいごに、事後検証を感情ではなくログとして残すことです。「運が悪かった」でも「モデルがダメだ」でもなく、どの信号を信じ、どの制約で切り、どこでしきい値が誤ったかを文章に残す。次のレースや、次のモデル改善の入力になるのは、そのログだけです。一件を深く切るほうが再現性があります。
おわりに
この記事で伝えたかったのは、勝ち方ではありません。予測が近くても、意思決定のフィルタ一つで成果が消える、という当たり前の事実を、自分の失敗で再確認した、という話です。競馬を始める必要はありません。代わりに、自分が運用している予測やレコメンド、審査ルールのどこで false negative を安く見積もっていないか——そちらを点検する材料にしてください。