はじめに:シンプルなモデルが勝った?その理由が気になりませんか?
同じデータ、同じ特徴量、同じタスク。5つの分類モデルを競わせたところ、優勝はたった1行のロジスティック回帰でした。Kaggleチャンピオンを倒したXGBoostは最下位。しかもログロス基準ではランダムな推測(1.099)よりも悪い結果でした。
核心的な問い: なぜシンプルなモデルが複雑なモデルに勝ったのか?そしてこの結果から私たちは何を学ぶべきか?
この問いに答えるために、実際の実験を再現し、統計学の核心概念であるバイアス-バリアンストレードオフ(Bias-Variance Tradeoff) を使って分析します。詳細は元記事をご参照ください。

実験設計と結果 — ログロスが語る真実
実験設定
- データ: 2010〜2022年ワールドカップ + 2020/2024ユーロ、計358試合
- 特徴量: チーム間の戦力差、両チームの合計戦力、トーナメントフラグ
- ターゲット: ホーム勝利、引き分け、アウェイ勝利(3クラス分類)
- 評価: 5-Fold Cross-Validation、ログロス(Log-Loss) を主指標、正解率は補助
ログロスが重要な理由
正解率は当てたクラスだけを見ます。ログロスは確率ベクトル全体の品質を評価し、自信満々の誤答に大きなペナルティを与えます。
# ログロス計算例(scikit-learn)
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import log_loss, accuracy_score
# proba: 交差検証で得た予測確率 (n_samples, n_classes)
proba = cross_val_predict(model, X, y, cv=5, method="predict_proba")
print(f"Log-Loss: {log_loss(y, proba):.3f}")
print(f"Accuracy: {accuracy_score(y, proba.argmax(1)):.2%}")
実験結果
| モデル | CV Log-Loss(低いほど良い) | CV 正解率 |
|---|---|---|
| ロジスティック回帰 | 1.001 | 54% |
| ランダムフォレスト | 1.011 | 56% |
| KNN | 1.013 | 53% |
| ニューラルネットワーク | 1.115 | 52% |
| XGBoost | 1.169 | 48% |
衝撃ポイント: XGBoostのログロス(1.169)はランダムな推測(1.099)よりも高い。正解率48%で一見悪くなさそうですが、確率推定の品質は完全ランダム以下です。
なぜこのようなことが起きたのか?
バイアス-バリアンス分解(Bias-Variance Decomposition) で説明できます。
Error = Bias² + Variance + Irreducible Noise
- バイアス(Bias): モデルが単純すぎて実際のパターンを捉えきれない誤差
- バリアンス(Variance): モデルが柔軟すぎて訓練データのノイズまで学習してしまう誤差
- 削減不可能なノイズ(Irreducible Noise): サッカー試合の本質的なランダム性(1回のディフレクトしたシュートが勝敗を決める)
XGBoostは数千のパラメータを持つ高容量(High-Capacity)モデルです。358サンプル(クラスあたり約120)ではこれらのパラメータを安定して推定できません。モデルが訓練データの偶発的なパターンに過学習(Overfitting)し、交差検証で未見のデータに対して自信満々の誤った予測をしてしまいます。
ログロスはこの「自信満々の誤答」に容赦ありません。例えば、実際の敗戦試合を90%の確率で勝利と予測した場合、ログロスペナルティは -ln(0.1) = 2.30 となり、控えめに50%で予測した場合(-ln(0.5)=0.69)の3倍以上です。これがXGBoostがランダム推測より悪化した理由です。
ロジスティック回帰はなぜうまくいったのか?
- データ生成過程との一致: サッカーの試合結果は戦力差に応じてログオッズでほぼ線形に増加します。ロジスティック回帰はこの構造を仮定(Inductive Bias)として持っているため、少ないデータでもうまく推定できます。
- 低次元: 特徴量が3つだけで相互作用も弱い。ツリー系モデルの強み(複雑な相互作用の探索)が発揮される機会がありません。
統計学の経験則: 安定した推定にはパラメータあたり10〜20の観測値が必要です。ロジスティック回帰は少数の係数 vs 358試合で余裕がありますが、XGBoostは数千のパラメータでこの予算をはるかに超過しています。

結果を冷静に読む方法 + モデル救済の可能性
結果解釈時の注意点
- CVの分散: 358試合、5フォールドなら各フォールド約72試合。ロジスティック回帰(1.001)、ランダムフォレスト(1.011)、KNN(1.013)の差は誤差範囲内で実質的に同点です。確かなのはシンプルモデルが上位、複雑モデルが下位という順序です。
- 正解率を過大評価しない: 引き分け(歴史的に約27%)はチーム戦力だけではほぼ予測不可能。ロジスティック回帰の54%はこの特徴量セットの実質的な限界に近いです。
XGBoostを救済できるか? — 正則化(Regularization)の力
はい、可能です。鍵はバリアンスを減らし、バイアスを少し増やすことです。
# 正則化を強化したXGBoostの例
import xgboost as xgb
model = xgb.XGBClassifier(
max_depth=2, # ツリーの深さ制限(デフォルト6)
min_child_weight=5, # 子ノードの最小重み合計を増加
subsample=0.7, # データサンプリング比率
colsample_bytree=0.7, # 特徴量サンプリング比率
reg_lambda=2.0, # L2正則化強化
learning_rate=0.05, # 学習率低下
n_estimators=200, # ツリー数(早期終了使用)
early_stopping_rounds=10, # 検証セット基準で早期終了
eval_metric='mlogloss'
)
十分に正則化されたXGBoostはロジスティック回帰に近づく可能性が高いです。しかし、これこそが教訓を強化します:「注意深いチューニングの末にようやくシンプルモデルに追いついた」 という事実自体が、データが小さいときはシンプルさが正解であることを証明しています。
学習曲線(Learning Curve)で判断する
2つのモデルの学習曲線を描くと決定的なパターンが見えます。
- 高バイアスモデル(ロジスティック回帰): データが増えても性能が早期に頭打ち。バイアスが限界です。
- 高バリアンスモデル(XGBoost): 初期は性能が悪いが、データが増えるにつれて着実に改善。
2つの曲線が交差する点が複雑なモデルが優位に立つデータ規模です。358試合ではその点のはるか左側にいます。数万試合のクラブデータとxG、休息日、ラインナップなどの豊富な特徴量があれば、XGBoostが逆転する可能性が高いです。
# 学習曲線描画例
from sklearn.model_selection import learning_curve
import matplotlib.pyplot as plt
train_sizes, train_scores, test_scores = learning_curve(
model, X, y, cv=5, scoring='neg_log_loss',
train_sizes=[0.2, 0.4, 0.6, 0.8, 1.0]
)
# ... グラフ描画(省略)

まとめ:モデルの複雑さはデータに合わせるべき
この実験が与える教訓は明確です。
- むやみに複雑なモデルから始めない。 データが小さくクリーンなら、ロジスティック回帰や線形モデルが正解である可能性が高いです。
- 適切な評価指標を使う。 分類問題で確率推定が重要な場合は、ログロスやBrier ScoreなどのProper Scoring Ruleを使いましょう。正解率は補助指標としてのみ活用しましょう。
- 正則化は強力なツールです。 過学習が疑われるなら、まずモデルの複雑さを減らす正則化手法を適用しましょう。
- 学習曲線を描いてみる。 データ規模によるモデル性能の変化を可視化すれば、今のデータにどのモデルが適しているか明確にわかります。
この技術の限界と注意点
- この結論はデータが少なく(数百件)特徴量が少ない(10未満) 状況に限定されます。ビッグデータ(数万〜数十万件)と数百の特徴量がある環境では、ツリー/ディープラーニングモデルが圧倒的に優位になる可能性があります。
- 非常に大きなモデル(パラメータがデータより多い)は「二重降下(Double Descent)」現象で再び性能が良くなることがあります。ただし、これはこの実験の範囲外です。
次のステップとしての学習方向
- バイアス-バリアンストレードオフの理論的理解を深める(The Elements of Statistical Learning 推奨)。
- Proper Scoring Rule(ログロス、Brier Score、AUC)の数学的背景を学ぶ。
- 実際のプロジェクトで学習曲線(Learning Curve) を描く習慣をつける。
- モデル複雑性選択のさらなる事例は、DeepSeek V4、Vercel AI Gatewayに正式登場 Pro vs Flash完全比較の記事も参考にしてください。
核心メッセージ: 複雑さが常に優れているわけではありません。データのサイズと構造に合ったモデルを選択する知恵こそが本当の実力です。時には最もシンプルな直線が、最も早くゴールラインを通過します。
合わせて読みたい記事