人がやっていたらこうはならなかった|自動公開の代償

2026年8月9日の新潟10レースの横けんが的中させた本命モートンアイランドの的中画像 今週の競馬激闘譜

初めましての方、こんにちは!毎週150万円の実弾を馬券に突っ込む男、横けんです。

このブログでは、完全自作の競馬予想AI(LightGBM)とTARGET frontier JVの膨大なデータを駆使して、感覚やオカルトを一切排除した「勝つための客観的指標」と「リアルな実戦の記録」を公開しています。


先週の収支ですが
8月8日(土)は34万3810円のマイナス
8月9日(日)は9万円のマイナス ということになっております。

先週は2日で91万円の勝負でした。

苦しい週でした。ここは正直に受け止めるしかありません。

それでは、恒例の自信度4以上の回収率ですがこちらになります!

2026年8月8~9日の横けんの自信度4以上の予想印別回収率と成績画像

自信度4以上に絞ると、本命の複勝率は51.5%、単勝回収率は111%。ここはプラスで終えています。複勝回収率は94%でした。絞ったところは悪くなかった、というのが正直なところです。

自信度1以上の全レースの予想の回収率を見てみましょう、こちらです!

2026年8月8~9日の横けんの自信度1以上の予想印別回収率と成績画像

全部を含めると、本命の複勝率44.3%・単勝回収率84%・複勝回収率80%。絞らないとこの水準まで落ちます。ここは土曜に引っぱられた形です。

そして、本命馬の自信度別回収率はこちらです!

2026年8月8~9日の横けんの自信度別本命印の回収率と成績画像

自信度4が単勝回収率172%・複勝回収率115%と、はっきり抜けました。その一方で自信度5が単勝17%・複勝63%。この逆転には理由があって、後半にそのまま書きます。

▶ 私が毎週150万円を賭けながら3年かけて作った競馬予想AIの全体像は、「競馬予想AIの作り方・完全ガイド」に最初から順にまとめています。

土曜は1番人気の勝率が48%。これでは穴は戦えません

先週については、まず土曜が本当に1番人気と2番人気ばかり来る週だったので、人気馬を外して勝負しがちな最近の私としては非常にきつかったですね。

2026年8月8~9日の横けんの土曜の人気別の回収率と成績画像

数字で見るとはっきりしています。土曜は31レースで1番人気が15勝、勝率48.4%。複勝率にいたっては71.0%です。2番人気も6勝していますから、1番人気と2番人気だけで31レース中21レースを勝っていることになります。

逆に5番人気より下は、31レースでほとんど勝てていません。私が勝負している場所が、まるごと消えていた日ということですね。

日曜はそこそこ荒れて、本命の回収率は単複とも100%を超えました

逆に、日曜の方はそこそこ荒れましたので、そうなってくると私の回収率は良くなります。回収率は単複で100%を超えました。

2026年8月8~9日の横けんの日曜の人気別の回収率と成績画像

日曜は1番人気の勝率が25.8%まで落ちて、16番人気が1勝、11番人気が2勝しています。土曜とは別の競馬です。

同じAI・同じ決め方で、私の本命がどう変わったかがこちらです。

2026年8月8~9日の横けんの土曜の予想印別回収率と成績画像
2026年8月8~9日の横けんの日曜の予想印別回収率と成績画像

土曜の本命は単勝回収率49%・複勝回収率48%。日曜の本命は単勝118%・複勝112%で、複勝率も54.8%あります。中身は1ミリも変えていません。来る人気が変わっただけで、ここまで変わるということです。

土曜と先週は異常なくらい堅かったですから、やはりそっちに合わせるのはやめた方がいいとは思っていますね。

いつもそうなら考えるのですが、基本的に、堅いレースばかりになることは少ないと思っています。

いちばん痛かったのは、レパードSを自信度4で出したことです

先週について、本当に痛かったのは、レパードSの本命チェリヴェントを自信度4で公開することになったことですね。

自信度4なものを自信度4で公開することは何ら問題ないのですが、レパードSはAI的にも自信度5だったのですが、その前の札幌11レースや中京5レースなどでバタバタしてしまって、レパードSの公開が10分前を切ってしまったんですね。

そこで、自信度5で公開すると、noteを見た方が、ぎりぎりで買えなかった、ということになり、そうなると、別のレースで補填するなど、より大変になってしまうこともあり自信度4でさっと公開したところ、チェリヴェント1着、ということになっております。

これを普通に自信度5にしていたなら、負けはなくて、とんとんくらいだったのではないかと思いますね。

前半で出した自信度別の表が、そのままこの話になっています。自信度4が単勝回収率172%・複勝回収率115%。自信度5は単勝17%・複勝63%。本来なら自信度5に入っていたはずの1着が、自信度4の側に乗っているわけです。

原因は私の公開システムでした。そこはもう直してあります

これは私の予想公開システムが不安定なのが原因ですので、その辺りの改善をやっております。

何が起きていたかというと、Xに載せるアイキャッチ画像を作る処理が、その日に限って極端に遅くなっていました。1枚に4分半かかることもあって、そこで詰まると後ろのレースが全部押されます。しかも画像作りでエラーが出ると、その後ろにある「Discordとnoteに出す」処理まで道連れで止まる作りになっていました。実際に中京5R(自信度5)は、Discordもnoteも X も1つも出ていません。

直したのは3つです。画像作りが失敗しても後ろの公開が止まらないようにしたことDiscordへの告知を画像より先に出すようにしたこと(自信度5の告知に画像は要りません)。そして画像を待つ時間を実測で決めたことです。

62件を実際に計ったところ、1枚目ができるまでの中央値が88秒でした。待ち時間を60秒にすると7回に1回しか間に合わず、120秒にすると77.4%が間に合う。それで120秒にしました。加えて「発走3分前は絶対に割らない」という上限もかけてあります。残り時間が少ないときは画像を待たずに出す、ということですね。

それから、自信度を上げ下げしたときの出し直しを1コマンドでできる道具も作りました。先週は手作業でやっていて、危うく予約投稿だけが古い自信度のまま流れる寸前でした。

「来るルメール来ないルメール」にAIの数字を入れます

あと、今週は、来るルメール来ないルメールというXでやっている記事について、AI予想を導入するために色々、Claude Codeとやっていました。

今までは私の主観予想が100%だったんですが、来るルメール来ないルメールで外してしまうパターンはAIと私の意見が割れて、AIは来る、私は来ないとしていた時に、外してしまうことが多かったんですね。

ということで、来るルメール来ないルメール予想強化のために、金曜の夜の時点から、AIの数値がわかるように改善しました。

ここが一番難しいところで、AIの数字は朝にしか出ないようになっていました。朝の私の作業(印を入れる、コメントを整える、指数を読み込む)が全部そろって、はじめてAIが動く作りだからです。

そこで、朝にやっていることを夜のうちに、同じ計算で作り直すようにしました。ただし作り直したものが本物と同じでなければ意味がないので、朝の本物と1つずつ突き合わせています。本命の印は243頭中243頭が一致。ほかにコメントから作る材料、メンバーレベル、カテゴリ指数、穴の指数、独自指数も、全部100%一致を確認しました。

もう1つ大事なのが、夜のシステムが本番のデータに1バイトも触らないようにしたことです。ここは過去に事故を起こしていて、夜に動かしたものが翌朝の予想データを壊したことがあります。今回は「本番のファイルに書こうとしたらその場で止まる」仕組みと、「終わったあとに本番25本が変わっていないことを確認する」仕組みを別々に用意しました。

重賞も金曜の夜にAIの数字が出ます

また、重賞に関しても金曜の夜時点で、AIの数値が出るように改善しました。これによって、YouTubeやXで前もってのコンテンツをやれるようになるのではないかと思っています。

細かい話ですが、重賞の拾い方は「11レース」ではなくクラス名で拾うようにしました。調べたら新潟7R・中京7R・小倉4Rのように、11レース以外で行われる重賞が普通にあります。レース番号で決め打ちしていたら取りこぼしていました。

また、他にも色々な改善をしております。どういう改善をしたかというと…

今週やった改善(先に要点だけ)

  1. ① 金曜の夜にAIの数字が出るようにした(ルメール+重賞)。 朝の材料6種類を朝の本物と突き合わせ、本命の印は243頭中243頭が一致
  2. ② 公開が遅れる原因を潰した。 画像待ちを実測で120秒に決定。60秒だと7回に1回しか間に合わない
  3. ③「入っているはずが入っていなかった」基本の材料19本を投入。 未勝利戦の単勝予想で、改善の幅がブレ幅の6.3倍
  4. ④ 東京開催の「風速」が5年半ずっと日照時間だった。 出走の13.8%が嘘の数字。しかも学習と本番でズレていた
  5. ⑤ AIに渡す材料2,774本のうち187本が「中身がまったく同じ列」だった。 外した版と現行版を、今日の再学習で直接対決させる
  6. ⑥ 今走のオッズから作っていた材料4本を全部外した。 設定12個・44行を削除。方針は「市場をなぞらない」なので徹底した
  7. ⑦【地方】調教コメント136万件を実測したら、手書きの辞書が効いていなかった。 47.5%がどの語にも当たらず中立に潰れ、いちばん効く上位12語のうち11語が漏れていた
  8. ⑧【地方】AIに入れている材料14本が、本番ではほぼ全部カラだった。 学習では0〜5%しか欠けないのに本番は97.8%。しかもエラーは1つも出ていない
  9. ⑨ 同じ棚卸しを中央でもやった。元ファイルは全部、定期処理で作り直されていた。 ただし別の検査が137本を「要調査」と出しているので、土曜の朝に決着させる

※ここから下は、この9つを1つずつ説明していきます。 ③〜⑥で入れた材料は、先週の成績にはまだ関係ありません(作り直すのは今日なので)。

今週もあらゆる改善を行っています。具体的にいうと…

まず③です。「頭数」「斤量」「性別」「クラス」「脚質」といった、競馬の基本中の基本がAIに入っていませんでした。

きっかけは私の一言です。「レースの頭数なんて、ない方がおかしい特徴量ですよ」。調べてみたら、頭数から作った応用形(過去のベストを出したときの頭数)は入っているのに、今走の頭数そのものが入っていない。斤量も同じで、差や平均は14本も入っているのに、素の斤量が無い。性別もクラスも脚質も同じ形で抜けていました。

面白いのは、基本の4本だけを足すと未勝利戦は悪くなったことです。19本まとめて足して、はじめて全部の場面でプラスに転じました。私のやり方は「薄い信号を何本も束ねる」なので、これはその通りの結果ということですね。

次に④です。東京開催の「風速」が、5年半ずっと日照時間でした。

風のデータを取ってくるとき、表の何列目を読むかを名前で探しているのですが、東京だけデータの出どころが違っていて、その探し方が必ず外れる。外れると8列目を読む作りになっていて、そこが日照時間だったわけです。出走の13.8%が嘘の数字だったことになります。しかも学習に使う値と、本番で使う値がズレていました。

ついでに調べたのですが、「前走の風が強かったか」は信号になりませんでした。強風で前走が凡走した馬は、穏やかな日に凡走した馬と同じだけ次も沈みます。風のせいではなかった、ということです。作り直すなら「その日の風速」ではなく「直線で向かい風が何m/s吹いていたか」であるべきで、そちらで組み直します。

⑤は少し情けない話です。AIに渡している材料2,774本を総当たりで比べたら、187本が「別の名前がついているだけで、中身がまったく同じ列」でした。

一番多いのは、直近1走だけを見る材料で「最小」「平均」「最大」の3本を作っているケースです。1走しかないので、3本とも同じ値になります。それが6つの設定すべてに3本とも入っていました。名前が違うだけの重複もあります。

ただし「消してよい」と決めつけないで、今日の再学習で外した版と現行版を直接対決させます。理屈の上では同じはずでも、実際に測るまで分からないので。

⑥は方針の話です。私は「今走のオッズは使わない」という方針でやってきたのですが、実際に設定を全部調べたら、今走のオッズから作った材料が4本入っていました。

正確に言うと、自分の馬の人気ではなく「そのレースの1番人気・2番人気が何倍か」=レースの荒れ具合を表す材料です。趣旨には反していないとも言えるのですが、方針は方針なので全部外しました。設定12個・44行の削除です。

ちなみに、過去の走りのときの人気(87本あります)はそのまま残しています。こちらは時間で動かないので、方針どおり使ってよいものです。

地方競馬のAIも同時に動いています

私は中央競馬と地方競馬で別々のPC・別々のAIを走らせていて、それぞれが同時に改善を進めています。地方側の今週は、⑦の話がとにかく大きかったですね。

地方は競馬ブックの調教コメントを136万件持っていて、それを手書きの辞書で1〜5の点数に置き換えてAIに渡していました。その辞書を実際に測ってみたら、こうなっていたそうです。

  • 点数の並びが逆転していた(4より2のほうが成績が良い)
  • 47.5%の行がどの語にも当たらず、全部「中立」に潰れていた
  • 符号が逆の語があった(「まずまず仕上がる」が良い側なのに実際はマイナス、「外厩調整」が悪い側なのに実際はプラス)

そして一番こたえるのが、語ごとに測ると効き幅は10.9ポイントもあるのに、いちばん効く上位12語のうち11語が辞書から漏れていたことです。一番効く言葉ほど捨てていたわけですね。

直し方も良かったと思います。語彙を眺めて手で選ぶのではなく、前半の期間だけで選んで、後半の期間で確かめるという順番にしています。前半で選んだ31語のうち29語(94%)が後半でも同じ向きで、効き幅も縮まなかった。たまたま拾えただけではない、ということです。

これは中央にもそのまま刺さる話で、私の側にも同じ形の手書き辞書があります。「どのカテゴリにも当たらない行が何%あるか」を測るのは来週の宿題にしました。

いちばん怖いのは、エラーが出ないバグです

⑧と⑨が、今週いちばん背筋が寒くなった話です。

地方側で、AIに渡している材料の「空欄」を種類ごとに仕分ける仕組みを入れました。空欄には理由があって、「新馬だから過去走が無い」のような当たり前のものと、「本来あるはずなのに消えている」ものが混ざっています。それを機械で分けて、説明のつかないものだけを出すという道具です。

入れた初日に、本物が1件出ました。乗り替わりと騎手の質、合わせて14本の材料が、本番ではほぼ全部カラでした。学習のときは0〜5%しか欠けないのに、本番は97.8%と71%。AIはこの14本について、何も見ていなかったことになります。

原因は単純でした。その材料の元になるファイルが、一度作ったきり、どの定期処理からも作り直されていなかったのです。作った時点で存在していないレースは、行そのものがありません。だから未来のレースは、黙って空になります。

そしてエラーは1つも出ていませんでした。画面は正常、処理も最後まで通る。ただ材料だけが空。私が一番こわいと思っているのはこの形です。落ちてくれるバグは気づけますが、黙っているバグは、見に行かない限り一生気づけません。

そこで中央でも同じ棚卸しをやりました。AIが読んでいる元ファイルを全部洗い出して、いつ更新されたか、どの定期処理が作り直しているかを1本ずつ確認しています。

中央は白でした。元ファイルは木曜・金曜・当日の処理がそれぞれ作り直していて、今週分も当日の朝に更新されています。

ただし、同じ型が無いわけではありません。中央では「厩舎の話」(陣営のコメントを点数にしたもの)が同じ構造をしています。コメントの点数と馬をひもづけるのに結果のファイルを使っているのですが、そのファイルは週に1回しか更新されないので、結果がまだ出ていない当日のレースは、行ごと消えてしまう。ここは土曜の朝、実際の予想を出した直後に確かめて決着させます。

ついでに、自分の恥もひとつ書いておきます。棚卸しの1回目で「7本が10か月前で止まっている」と出て、正直かなり焦りました。調べたら同じ名前の古いファイルを見ていただけで、本物は当日の朝にちゃんと更新されていました。おかしな数字が出たときは、まずその数字の作り方を疑う。これも今週の収穫です。

もう1つ、地方側から出てきて刺さった言葉があります。「検知の仕組みを作った」は「検知できる」の証明にならない。わざと壊してみて、ちゃんと警報が鳴るところまで見届けないと、鳴らない警報を持っているだけかもしれない。たしかにその通りなので、土曜の判定の前に1回やります。

中央と地方で別々のAIを走らせている良さが、今週はっきり出たと思っています。片方が踏んだ穴を、その日のうちにもう片方が点検できる。1台でやっていたら、14本がカラのまま何か月も走り続けていたはずです。

再学習は今日です

最後に毎週書いていることを、今週も書いておきます。

今週入れた材料は、先週の成績にはまったく関係ありません。モデルを作り直すのは今日(木曜)なので、先週の予想は先週のままのAIが出したものです。

今日の再学習では、上に書いた③〜⑥を全部まとめて確かめます。良くならなかったものは、その場で元に戻します。作った=採用ではないというのは変えていません。

先週は土曜がああいう日でしたが、あれに合わせて1番人気に寄せることはしません。寄せた瞬間に、私である必要が無くなりますので。今週もブレずにいきます。

それでも、来週のほうが良くなります

2日で43万円のマイナスでした。ここはごまかしません。

ただ、悲観はしていません。日曜のように荒れた日には、同じAI・同じ印のままで本命の回収率が単複とも100%を超えています。私のやり方が通用しなくなったのではなく、通用する日が土曜に来なかっただけです。1番人気が48%勝つ日は、そう何度も続きません。

そして今週、金曜の夜にはAIの数字が出るようになりました。公開が発走10分前に押される原因も潰しました。同じ失敗はもう起きません。負けた分は、仕組みで取り返します。

私は毎週150万円を張って、勝った週も負けた週も、同じ精度で全部この場所に出しています。3年やってきて、これだけは一度も曲げていません。付き合っていただければ、私が転んだところは踏まなくて済みます。今週も、ブレずにいきます。

この週にやったことのうち、毎回使える部分だけをまとめ直した記事はこちらです。→ エラーが出ないバグの見つけ方|5年半ずっと風速が日照時間だった話

コメント

タイトルとURLをコピーしました