この記事では「BOATCRAFT は 4 つもモデルを使うの?」「ブレンドって具体的に何?」という方のために、以下の内容をまとめています。
- なぜ単一モデルでは足りないのか
- 4 つのアルゴリズムそれぞれの個性
- ブレンドの 3 つの方式(重み付き平均・スタッキング・アンサンブル投票)
- BOATCRAFT の実際の実装
- 単一モデルとブレンドの精度比較
第 1 回「AI予想とは何か」で書いた「機械学習 × 統計学のハイブリッド設計」の、 機械学習パートを深掘りする記事です。
なぜ単一モデルではダメなのか
機械学習の世界には「ノーフリーランチ定理」という有名な定理があります。
ざっくり言うと、「すべての問題に対して最強のモデルは存在しない」という意味です。
ある問題ではモデル A が強い。別の問題ではモデル B が強い。どれが最強かは、問題によって違う。 これは数学的に証明された事実です。
競艇予想で言うと
競艇の予想には、性質の違う変数が大量に絡みます。
- 数値: 全国勝率、モーター 2 連率、展示タイム、年齢、体重
- カテゴリ: A1/A2/B1/B2 の級別、支部、コース、会場
- 時系列: 直近 10 走の調子、節内の伸び方
- 相互作用: 「A1 × 1 コース × 大村」のような組み合わせ
これらは全く性質が違うデータです。ある艇の強さを評価するために、これら全部を 1 つのモデルで上手く扱える保証はありません。
単一モデルの落とし穴
たとえば LightGBM だけで予想を作るとします。LightGBM は数値データの扱いがめちゃくちゃ得意です。 でも「A1 級」「B2 級」のようなカテゴリデータは、内部で数値化(エンコード)してから学習するため、 「A1 と B1 のちょうど中間」みたいな意味のない比較を学習してしまうことがあります。
これは A1 級と B2 級の間に「3」と「1」みたいな数値関係を勝手に作ってしまい、本来の意味とは違う学習が起きるという問題です。
逆に ニューラルネット (NN) だけで予想を作ると、複雑なパターンは捕捉できますが、 データ量が少ない場面(マイナー会場のレアな組み合わせなど)で精度が大きく落ちます。 NN はデータをたくさん「食べる」必要がある hungry なモデルです。
これが「単一モデルで満点を取れない」根本原因です。
4 つのアルゴリズム ─ それぞれの個性
BOATCRAFT が使っている 4 つのアルゴリズムを、それぞれ「どんな選手か」で例えてみます。
LightGBM ─ 高速職人
- 開発元: Microsoft
- 得意: 数値データの高速処理、大量データの学習
- 不得意: カテゴリデータ、過学習しやすい
LightGBM は決定木をベースにした 勾配ブースティング という手法のひとつです。 「全国勝率 6.5 以上なら強い、それ未満なら弱い」のような 数値の閾値判断 が得意。
例えるなら、1 つひとつのデータを高速で捌く工場長みたいなモデルです。 100 万件のレースデータを、数分で学習し終えるスピードが武器。 BOATCRAFT の学習データの規模(過去 27 年・1,000 万件超)には欠かせません。
XGBoost ─ 安定の優等生
- 開発元: 学術界(Tianqi Chen)
- 得意: バランスの取れた精度、過学習を抑える正則化
- 不得意: LightGBM より遅い、大規模データではメモリ消費が大きい
XGBoost も勾配ブースティング系ですが、「過学習しないように」設計が強化されています。 LightGBM が「攻めの精度」なら、XGBoost は 「守りの精度」。
業界の AI コンペで最も使われてきたモデルで、「とりあえず XGBoost 使えば外さない」と言われるくらい安定しています。 BOATCRAFT では LightGBM のリスク(過学習)を XGBoost で抑える役割。
CatBoost ─ カテゴリの専門家
- 開発元: Yandex(ロシアの検索エンジン会社)
- 得意: カテゴリデータ(A1/A2、支部、会場)
- 不得意: 学習が遅い
CatBoost の名前の通り、カテゴリ変数を扱うのが圧倒的に得意です。
競艇予想では「A1 × 大村 × 1 コース」のような 組み合わせ が結果に大きく影響します。 CatBoost はこれを内部で自動学習してくれる。 BOATCRAFT の最適化済プリセットで「会場特性」がしっかり効く背景には、CatBoost の貢献があります。
ニューラルネット (NN) ─ 複雑な相互作用の探偵
- 開発元: 一般的な深層学習フレームワーク(PyTorch / TensorFlow)
- 得意: 非線形・複雑なパターン、特徴量同士の相互作用
- 不得意: データが少ない領域、解釈性が低い(ブラックボックス)
NN は人間の脳神経を模した構造で、「人間が気づかない隠れたパターン」を見つけてくれます。
たとえば「展示タイムが速い × 直近 ST が安定している × かつ会場特性が荒れ気味」のような 3 重 4 重に絡んだ条件を、自動で組み合わせて学習する。 BOATCRAFT の予想で「あれ、これ普通の指標だけじゃ説明できない予測だな」と感じる時、たいてい NN が裏で働いています。
4 モデルの「キャラ」まとめ
| モデル | キャラ | 得意 |
|---|---|---|
| LightGBM | 高速職人 | 数値・大量データ |
| XGBoost | 安定の優等生 | 過学習防止・バランス |
| CatBoost | カテゴリの専門家 | 級別・支部・会場の組み合わせ |
| NN | 複雑な探偵 | 非線形・隠れたパターン |
最後に意見を統合する。これがブレンドです。
ブレンドの 3 方式
「ブレンド」と言っても、その方法は何種類かあります。代表的な 3 つを紹介します。
方式 1: 重み付き平均 (Weighted Average)
最もシンプルな方式です。
各モデルの予測値に「重み」をかけて、足し合わせる:
最終予測 = 0.3 × LightGBM + 0.25 × XGBoost + 0.25 × CatBoost + 0.2 × NN
重みは、各モデルの過去の精度に基づいて決めます。LightGBM が最も的中率が高ければ、重みを大きくする。
メリット: シンプル、計算が軽い、解釈しやすい
デメリット: モデルの「組み合わせ」効果を捕捉できない
方式 2: スタッキング (Stacking)
もう一段上の方式です。
各モデルの予測を 「特徴量」として扱い、その上にもう 1 つメタモデルを乗せる:
LightGBM 予測 ┐
XGBoost 予測 ├→ メタモデル (例: ロジスティック回帰) → 最終予測
CatBoost 予測 │
NN 予測 ┘
メタモデルが「LightGBM が高くて、CatBoost が低い時はこういう傾向がある」みたいなパターンを学習します。
メリット: ブレンド方式の中で最も精度が高い
デメリット: 過学習しやすい、計算が重い
方式 3: アンサンブル投票 (Ensemble Voting)
予測値ではなく 「予測結果(買い目)」で多数決を取る方式。
各モデルが「1 号艇が 1 着」と予測したら 1 票。「2 号艇が 1 着」と予測したら 1 票。 最も票数が多い艇を最終予測とする。
メリット: 異なる予測手法も統合できる、頑健性が高い
デメリット: 確率の細かい違いを失う、競馬・競艇のような確率的予測には不向き
BOATCRAFT が選んだのは
BOATCRAFT は 方式 1(重み付き平均)と方式 2(スタッキング)のハイブリッドを使っています。 各モデルの「確率」を取り、コース別・会場別に重みを動的に調整。さらにメタ層で最終調整。
BOATCRAFT の実装
ここからは、実際の BOATCRAFT がどう動いているか、もう少し具体的に話します。
4 モデルの学習データ
すべて同じ学習データを使います:
- 特徴量数: 約 60 種類
- 学習データ: 1999 年〜2024 年(2025 年〜2026 年は検証用に分離)
- データ量: 約 900 万件のレース結果
同じデータでも、4 モデルは違う「学び方」をします。学び方が違えば、得意な場面も違う。これがブレンドの威力です。
予測の流れ
ユーザーがアプリで「予想ボタン」を押すと、サーバー側で以下が走ります:
1. レースの 6 艇のデータを取得
2. 4 モデルそれぞれが「各艇の 1 着確率」を予測
3. ユーザーが設定した 23 つまみの値を反映
4. 4 モデルの予測を重み付き平均
5. メタ層で最終調整 (会場特性・直前情報)
6. 出力: 各艇の確率 + 推奨買い目
1 秒の 100 分の 7 で、4 モデルの予測を統合しています。
23 つまみは「重み」に反映される
ここが BOATCRAFT のユニークな点です。
普通の AI 予想アプリは「AI が学習した予測」をそのまま出します。ユーザーは介入できない。
BOATCRAFT では、ユーザーが 23 つまみで指定した値が、4 モデルの重みやメタ層の調整に反映される。
たとえば「会場特性つまみ」を上げると、CatBoost(会場 × コースの組み合わせが得意)の出力が強くなる。 「展示タイムつまみ」を上げると、NN(直前情報の非線形パターンが得意)が前に出る。
単一 vs ブレンド、本当に精度は上がるのか
正直なところを書きます。
ブレンドが単一モデルより常に勝つわけではありません。
ある会場・ある条件では、単一モデル(特に LightGBM 単体)の方が精度が高いことがあります。 全体としては ブレンドが勝つ、というのが現実です。
BOATCRAFT 内部の検証(直近 1 年データ)
| モデル | 1 着的中率 | 3 連単的中率 |
|---|---|---|
| LightGBM 単体 | 51.2% | 1.8% |
| XGBoost 単体 | 50.8% | 1.7% |
| CatBoost 単体 | 51.5% | 2.0% |
| NN 単体 | 49.1% | 1.6% |
| 4 モデルブレンド | 53.4% | 2.4% |
最強の CatBoost 単体と比較して、ブレンドは 1.9 ポイントの改善。 微妙な差に見えますが、長期で見れば予測精度の差として確実に蓄積する差です。
3 連単の的中率は 2.0% → 2.4% で 2 割アップ。これは見た目以上に大きな差です。 競艇の 3 連単 1 点予測の全国平均的中率が約 0.83% (1/120 通り) であることを考えると、 2.4% は 約 3 倍の精度。長期で見ると AI 予想の質が確実に効いてきます。
ブレンドの本当の価値
精度の数字以上に、「予測の安定性」が上がります。
単一モデルだと「ある日突然、全部外れる」リスクがあります。モデルが見落としていた要因が出てきた時です。
ブレンドだと、4 モデルが「お互いの穴を埋め合う」。 予測のブレ(連続して外す期間)が短くなる。これは予想の信頼性として非常に重要です。
「予測の安定性」にある。
まとめ
長くなりましたが、ポイントを 5 つにまとめます。
- 単一モデルで全てを解けるアルゴリズムは存在しない(ノーフリーランチ定理)。
- 競艇予想には性質の違う変数が大量にあるため、複数モデルの組み合わせが効く。
- BOATCRAFT は 4 モデル (LightGBM/XGBoost/CatBoost/NN) を重み付き平均 + スタッキングでブレンドしている。
- 23 つまみは「どのモデルをどれくらい信じるか」のスイッチでもある。
- ブレンドの本当の価値は、精度向上に加えて「予測の安定性」にある。
次回の記事では、機械学習だけでは足りない理由 ─ つまり「統計学を組み合わせる理由」を解説する予定です。 新人選手や開催初日のレースで機械学習が苦戦する場面、そして統計学がどう補うのか。ご期待ください。