最終更新日:2026年8月27日
gk machine_learning evaluation
まず結論
データリーケージ(Data Leakage)とは、本来の予測時には利用できない情報や、検証・テスト側の情報が、学習・特徴量作成・モデル選択などへ不適切に混入することです。
その結果、モデルが実力以上に良く見えることがあります。
G検定では、
「その情報は本番の予測時点で本当に使えるか?」
を最初の判断基準にします。
直感的な説明
データリーケージは、答えや本番では見られない情報を先に見てから練習している状態に近いです。
評価時
→ とても高精度
実運用
→ 同じ情報が使えない
→ 性能が落ちる
重要なのは、モデルの種類ではなく、学習・評価の手順に情報の混入がないかを見ることです。
定義・仕組み
データリーケージにはいくつか代表的なパターンがあります。
未来情報・目的変数に由来する情報
予測したい時点より後でしか得られない情報や、目的変数を直接・間接に含む特徴量を使うケースです。
予測時には知らない未来情報
→ 学習時だけ特徴量として使用
→ リーケージ
分割前に全データで前処理する
たとえば、訓練・検証・テストへ分ける前に全データの平均や標準偏差を使って標準化すると、検証・テスト側の情報が訓練処理へ入り込みます。
前処理の統計量は、訓練データだけから求め、同じ変換を検証・テストへ適用するのが基本です。
交差検証でも同様で、標準化や欠損値補完などは各foldの訓練部分だけでfitします。
テストデータを何度も見て調整する
テスト結果を見ながらハイパーパラメータやモデルを繰り返し調整すると、テストデータが実質的にモデル選択へ使われます。
- 検証データ → モデル選択・調整
- テストデータ → 最後の独立した評価
という役割を分けます。
いつ使う?(得意・不得意)
特に注意する場面
- 時系列データ
- 特徴量作成
- 標準化・正規化・欠損値補完などの前処理
- 交差検証
- ハイパーパラメータ探索
- テスト結果を見ながらモデルを改善するとき
過学習との違い
データリーケージと過学習は同じではありません。
| 問題 | 何が起きている? |
|---|---|
| 過学習 | 正しい学習手順でも、訓練データへ適合しすぎる |
| データリーケージ | 本来使えない情報が学習・評価へ混入する |
つまり、過学習はモデルの汎化の問題、リーケージは情報の分離・評価設計の問題と切り分けます。
G検定ひっかけポイント
「未来情報」だけがリーケージ
❌ 未来情報だけが対象
⭕ 検証・テスト側の情報や目的変数由来の情報が不適切に入るケースも含みます。
全データで標準化してから交差検証
❌ 先に全データで平均・標準偏差を計算してよい
⭕ 各foldの訓練部分だけで前処理をfitします。
テストデータの役割
❌ テスト結果を見ながら何度もモデルを調整する
⭕ テストデータは最終的な独立評価に残します。
判断基準
- 本番で使えない情報が入っている → リーケージを疑う
- 訓練は良いが未知データで悪い → 過学習も候補
- 検証・テスト情報を学習へ使った → リーケージ
まとめ(試験直前用)
- データリーケージ=本来使えない情報の混入
- 未来情報だけでなく、検証・テスト情報の混入も含む
- 前処理は訓練データだけでfitする
- テストデータは最終評価に残す
- 過学習=適合しすぎ、リーケージ=情報が漏れているで切り分ける