地方競馬 ROI 検証プロジェクト

地方競馬の公式データと機械学習で、控除率を超えて ROI 100% を上回れるか—— それだけを確かめる検証プロジェクトです。

問い

競馬の馬券は、売上の一部(券種により約 20〜25%)が控除されたうえで払い戻されます。 つまり参加者全体では必ず負ける設計で、無作為に買い続けたときの回収率(ROI)は 100% を大きく下回ります。この控除という向かい風の中で、 公式データと機械学習だけを使って、長期の ROI 100% を上回ることはできるのか。 それがこのプロジェクトの問いです。

手法の概要

詳細な特徴量やモデルの中身は公開していませんが、検証の枠組みは次のとおりです。

時系列 walk-forward 検証

「過去のデータだけで学習し、その先の 1 年で成績を測る」を年ごとに前進させながら 繰り返します(評価は 2016 年以降)。ランダムにデータを分ける方式は、未来の情報が 学習に混ざるため使いません。

リーク(未来情報の混入)防止

学習に使う値は、必ず「そのレースの時点で既に分かっていた値」に限定します(as-of 原則)。 さらに、学習のたびにリーク検査一式(学習と評価の時間分離、結果由来の列の混入、 単独で当たりすぎる特徴の検出など)を全て実行し、1 つでも落ちたら検証を進めない 運用にしています。

判定の物差し

モデルの ROI は単独では評価せず、次の 2 つと比べます。

また ROI の点推定だけでは偶然と区別できないため、レース単位のブートストラップで 95% 信頼区間(CI)を出し、「B1 を上回り、かつ 95%CI の下限が 100% を超える」 ときだけ「価値あり」と判定します。

現時点の結果

成績データを読み込んでいます…

検証期間は評価対象の全レース(約 15 万レース)。本命モデルは毎レース、 予測の上位に 1 点だけ買い続けた想定です。オッズは確定オッズを使っているため実運用より 有利に出やすく、手数料などは含まない理論値です。数値は検証記録から自動転記され、 検証が進めば更新されます。

買うレースを選ぶ実験

本命は毎レース買います。いま試しているのは、予測1位が 2〜5番人気のレースだけ買う戦略です。買う馬は変えていません。 帯は事前に固定しており、後からいちばん良かった帯を選んではいません。

学習が終わり公開記録に載ると、下の「実験の記録」に 実験名 pop-band-2-5 の行が出ます。その行のレース数は全期間より少なくなります。 同じレースを人気順(B1)で買った ROI に勝って初めて、モデルの寄与と言えます。

実験の記録

本命モデル(champion)に対して、改善候補(challenger)を 1 実験ずつ試しています。 採否は「同一条件で champion の ROI を上回り、かつ人気順ベースライン(B1)も上回る」 ことを機械的に判定して決めます。

記録を読み込んでいます…

免責

本プロジェクトは検証記録の公開であり、投票(馬券の購入)その他の行為を 推奨するものではありません。掲載している数値は過去データに対するオフライン検証の理論値で、 将来の結果を保証しません。個々のレースの予想は公開していません。

構築記録(記事)を読む →

← コストラボのトップへ