もう少し詳しく

機械学習では、学習用と評価用のデータの境界を守る必要があります。評価用データを含めて特徴量を選んだり、予測したい出来事の後で得られる情報を入力に使ったりすると、未知のデータへの対応力を正しく測れなくなります。データリークは意図せず起きることもあり、モデルの学習だけでなく、収集・分割・前処理の工程まで確認します。

データを学習用と評価用に分けていても、その前に全データから平均値を計算して標準化したり、正解との関係を使って特徴量を選んだりすると、評価側の情報が学習へ入り込みます。前処理の設定は学習用データだけで決め、その設定を評価用データにも適用します。scikit-learnのPipelineは、交差検証の各分割内で前処理と学習をまとめる助けになります。ただし、予測後の情報を入力に含める問題まで自動で解消するものではありません。スコアだけを見るのではなく、各データがいつ作られ、いつ利用できるかを確認することが大切です。

HISTORY

開発された年代と歴史

データリークは、2011年の論文より前から指摘されていた評価上の問題です。ここではKDD 2011の研究を、定義・検出・回避を整理した節目として紹介します。発明者や単一の発明年を示すものではありません。

  1. 2011Kaufman、Rosset、Perlichが、データリークの定義・検出・回避を整理した研究をKDDで発表。
  2. 資料確認:2026-10-14scikit-learnの公式資料で、学習用だけから前処理を学ぶ方法とPipelineの実装例を確認。

キーマン・関わった研究者

Shachar Kaufman、Saharon Rosset、Claudia Perlich(2011年の論文著者)

技術の変遷

予測時点の情報を定義 → 学習と評価の境界を守る → 本番に近い条件で評価

理解のポイント

  • 予測する瞬間に利用できる情報かを、一つずつ確認します。
  • 評価用データから前処理の設定を学ぶと、モデルの成績を過大に評価するおそれがあります。
  • データ分割を先に行い、学習で決めた変換を評価用データへ適用します。
FOR EXAMPLE

たとえば、こんな場面で

この辞典の独自の架空例:月初に顧客の退会を予測するモデルへ、その月に退会手続きをした後で記録された「解約理由」を入れてしまいます。過去のデータでは当たりやすく見えても、月初にはその情報を使えません。

覚えておきたいこと

ここでいうリークは、個人情報が外部へ流出する事故とは別の、学習・評価上の問題です。過学習は学習データに合わせすぎること、データリークは本来使えない情報が混ざることです。学習時のスコアが高いだけでは、どちらも判断できません。

参考資料

scikit-learn公式ドキュメント:Common pitfalls — Data leakage Kaufman・Rosset・Perlich:Leakage in Data Mining(KDD 2011)