AIモデル解説 — LambdaRank とライン特徴量

LightGBM LambdaRank (NDCG@1-3最適化) / 全25特徴量 / 全国43競輪場対応

이 페이지 안내

ランキング学習としての競輪予想

競輪で知りたいのは「その選手が何秒で走るか」ではなく 「同じレースの中で誰が上位に来るか」です。そこで本モデルは、各選手の着順を 1着=5 / 2着=4 / 3着=3 / 4着=2 / 5着=1 / 6着以下=0 の 段階的評価スコアに変換し、レースをひとつのグループとして LightGBM の LambdaRank で学習させています。評価指標は NDCG@1-3、 つまり上位3着の並びの正確さを直接最適化しています。

推論時はレース内スコアを softmax で正規化して「AI勝率」として表示し、 スコア順に◎○▲△✕注の印を割り当てます。推奨買い目は予測1位を軸に固定し、 上位4車の組み合わせから信頼度上位を提示しています。

ライン特徴量の設計

競輪が競馬や競艇と決定的に違うのは、レースがライン単位の連携で動くことです。 個々の能力値だけを並べたモデルでは「強い先行選手の番手にいる追込型」を 正しく評価できません。そこで隊列の情報を次の6項目に分解して与えています。

特徴量意味設計意図
is_line_head라인 선두ライン先頭かどうか。風圧を受け続ける不利と、主導権を握れば押し切れる有利の両面を学習させる。
is_second마크番手かどうか。先頭の風よけを受けられるため、同じ実力なら連対率が上がることをモデルが捉える。
is_third3번 자리三番手かどうか。3着圏内に押し上げられやすい位置。
is_solo단독単騎かどうか。風よけを得られない不利を表す。
line_size라인 인원所属ラインの人数。人数が多いほど隊列を維持しやすい。
line_head_b선두의 백스트레치 횟수自ライン先頭選手のバック回数(B)。「強い先行選手のラインにいるか」を数値化した、競輪特有のライン強度指標。

役割フラグは排他的(どの選手も必ず1つだけ1になる)で、 ライン人数と実際の所属者数が一致することをテストで検証しています。 用語の意味は경륜 용어집を参照してください。

特徴量重要度(Gain 寄与率)

学習済みモデルにおける各特徴量の Gain を正規化したものです。 上位12件を掲載しています。

順位特徴量カラム名Gain 寄与率
1경주 득점kyoso_tokuten69.77%
2級班class_code21.62%
3경기장venue_id1.39%
4선두의 백스트레치 횟수line_head_b1.28%
5풍속wind_speed0.83%
6直近2連対率recent_2rate0.69%
7直近3連対率recent_3rate0.58%
8직선 길이straight_length0.56%
9차번car_no0.51%
10直近勝率recent_win_rate0.47%
11경주 번호race_no0.4%
123번 자리is_third0.24%

バックテストの条件

「3連単の本命1点買い(予測1位→2位→3位)を全レースで機械的に購入する」 という単純な戦略で検証した結果です。1レースあたり100円投資として計算しています。

백테스트 결과

검증 경주 수864R
1착 적중률53.8%
2連単的中率27.4%
3連単的中率13.3%
3連単回収率80.0%
투자 / 환수86,400円 / 69,080円

バックテストはシミュレーション生成レースによる検証値であり、実際の払戻実績ではありません。

この数値の限界を明記します。 検証に用いたレース結果はシミュレーションで生成したものであり、 実際の開催・実際の払戻に基づく成績ではありません。 選手マスタ(級班・脚質・競走得点・決まり手回数・バック回数)は KEIRIN.JP の公開情報を取り込んでいますが、レースの着順と払戻は そのデータを基に生成しています。したがって上記の的中率・回収率は モデルの相対的な性能を比較するための指標であり、 実運用での収支を保証するものではありません。

パイプライン

データ取得 → ライン特徴量生成 → LambdaRank学習 → 推論 → バックテスト → 静的HTML出力(ゼロサーバーコスト構成)。予想本文・選手ページ・ 開催日別ページはすべてビルド時に静的HTMLとして書き出されます。