1行定義
データリーケージとは、予測を行う時点では使えないはずの情報が学習や評価に紛れ込み、モデルの性能が実際より高く見積もられる現象のことです。
くわしく
データリーケージは、本来なら予測の時点では手に入らない情報が、モデルの学習や評価に紛れ込んでしまうことです。leakageは「漏れ」という意味で、答えに関する情報がモデルの側に漏れ出している状態を指します。試験にたとえると、問題用紙と一緒に解答の一部が配られているようなものです。
何が困るのか
リーケージがあると、検証では高い精度が出ます。しかし本番では、紛れ込んでいた情報が手に入らないので、精度が大きく下がります。評価の数字を信じて導入を決めた後で発覚するため、損失が大きくなりがちです。
過学習とは見え方が違います。過学習は、学習データでは精度が高いのに検証データで下がる現象なので、検証の段階で気づけます。リーケージは検証の数字そのものが甘くなるので、検証だけでは気づきにくいのが厄介な点です。
典型的なパターン
- 目的変数の結果として記録される項目を、特徴量に使う。例:病気の有無を予測するのに、診断の後で始まる治療薬の処方記録を使う。
- 時系列データを無作為に分け、未来のデータで学習して過去を予測する。
- 標準化や欠損値の補完、特徴量の選択を、検証用データも含めた全データで行ってから分割する。
- 同じ人や同じ製品のデータが、学習用と検証用の両方に入る。
防ぎ方
基本は、「予測するその時点で、この情報は本当に手に入るか」を特徴量ごとに確かめることです。データは先に分割し、前処理に使う平均などの値は学習用データだけから求めます。時系列データは時間の順に分けます。検証の精度が不自然に高いときは、目的変数と極端に強く結びつく特徴量がないかを疑います。
覚え方
「本番で手に入らない情報は、学習にも評価にも入れない」が合言葉です。
G検定での出題
出題のされ方
予測時点で得られない特徴量の混入、全データを使った前処理、時系列データの無作為な分割などの例から、リーケージに当たるものや防ぎ方を選ぶ形で問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| データリーケージこのページの用語 | 予測を行う時点では使えないはずの情報が学習や評価に紛れ込み、モデルの性能が実際より高く見積もられる現象 |
| 過学習 | モデルが学習データのノイズまで覚え込み、学習データではよく当たる一方で、未知のデータに対する予測の精度が下がる状態 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
同じ患者から撮った複数の画像が、学習用データと検証用データの両方に分かれて入っていると、評価が実際より甘くなるおそれがある。
答えを見る
答え ◯ 正しい
同じ人の画像は互いに似ています。モデルが病気の特徴ではなく患者ごとの特徴を覚えても正解できてしまうため、患者単位でデータを分けます。
-
データリーケージが起きていると、検証の精度は低く出るが、本番では予測の精度が上がる。
答えを見る
答え × 誤り
逆です。本来は使えない情報に頼るので、検証の精度は高く見えます。本番ではその情報が手に入らず、精度が下がります。
-
データリーケージは学習用データの件数が少ないことが原因で起こるので、データを増やせば解消できる。
答えを見る
答え × 誤り
原因はデータの量ではなく、データの作り方や分け方の誤りです。予測時点で得られない情報を除き、分割と前処理の手順を正すことで防ぎます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目36 データの収集・加工・分析・学習)
- Shachar Kaufman, Saharon Rosset, Claudia Perlich, Ori Stitelman, Leakage in Data Mining: Formulation, Detection, and Avoidance, ACM Transactions on Knowledge Discovery from Data 6(4) (2012)
- scikit-learn User Guide, Common pitfalls and recommended practices(Data leakage)