🕵️ 資料洩漏 互動動畫

Data Leakage — 為什麼你的模型離線超神、上線超爛?

💡 白話說明

資料洩漏就像考試作弊:

📌 考試重點:資料洩漏會讓離線指標「虛高」,上線後表現崩潰。所有預處理(標準化、SMOTE、特徵選擇)都必須在交叉驗證的每個 fold 內重做。
🔍 測試集混入
⏰ 未來資訊洩漏
⚙️ 預處理洩漏
🎯 目標洩漏

❌ 有洩漏(作弊版)

-
-

✅ 無洩漏(正確版)

-
-

🛡️ 如何避免資料洩漏?

✅ 先切分再預處理

先把資料切成 train/test,所有預處理只在 train 上做,test 用 train 的參數轉換。

✅ Pipeline 封裝

用 sklearn Pipeline 把預處理和模型包在一起,自動在每個 fold 內重做。

✅ 時序用 Walk-Forward

時間序列永遠用過去預測未來,不能隨機切分。

✅ 檢查特徵

如果某特徵跟目標相關性異常高(>0.95),很可能是洩漏。

📊 資料洩漏常見來源
來源例子對策
前處理洩漏用全資料算均值填補/縮放只 fit 訓練折、放 pipeline
目標洩漏特徵其實含未來或目標資訊檢查特徵是否事後才知
時間洩漏用未來資料預測過去依時間切分、時序 CV
重複/群組同人同事件跨訓練測試按群組切分
✅ 自我檢測
資料洩漏是什麼?
訓練時不當用到「預測時拿不到」的資訊(未來或目標),讓分數虛高、上線卻崩。
為什麼分數高反而要警覺?
好到不真實常是洩漏徵兆;要回頭檢查特徵與切分,別高興太早。
怎麼預防?
先切分再前處理、把前處理放進 pipeline 對每折分別 fit、依時間/群組切分、審視每個特徵的可得時點。
🎯 重點整理
  1. 洩漏=用到預測時拿不到的資訊。
  2. 常見:前處理、目標、時間、群組洩漏。
  3. 先切分再前處理,放進 pipeline。
  4. 依時間/群組切分避免穿越。
  5. 分數好到不真實要先懷疑洩漏。

📝 iPAS 考點提醒

資料洩漏是 iPAS 最常考的陷阱題(中級科目二與三)。重點:訓練時不當用到測試或未來的資訊,導致評估虛高、上線後大幅落差。易混點:常見來源是切分前就對全資料標準化、特徵選擇或重取樣、用未來資料預測過去、或特徵藏有目標的代理變數;前處理要放進管線、在折內做。情境:辨識某做法為何會洩漏、如何避免。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

資料洩漏(Data Leakage)是什麼?

訓練時不慎用到實際上線時拿不到、或屬於驗證/測試的資訊,使評估分數虛高,但上線後表現崩盤,是實務中最常見的隱形陷阱。

有哪些常見來源?

前處理在切分前對全資料做(標準化、PCA、特徵選擇)、用未來資訊預測過去、放進與目標幾乎等價的特徵(target leakage)、重複樣本跨訓練與測試。

怎麼預防?

先切分再做前處理、把所有前處理包進 pipeline 並只在訓練折擬合、時間序列用時序切分、檢查可疑地「過好」的特徵與分數。

為什麼分數高反而要警覺?

異常高(如接近 100%)常是洩漏的徵兆,真實任務很少完美;應回頭檢查特徵是否含目標資訊、或前處理是否洩漏。

target leakage 的例子?

用「是否已付款」預測「是否成交」,但付款本身就是成交結果;或用只有確診後才會有的欄位去預測是否確診,都會造成上線無效。

🧭 相關主題

← 返回 AI 學習與考證地圖