天天看點

資料洩露-揭秘機器學習模型如何作弊

什麼是資料洩露?​

您是否對變現完美的模型表現困惑?你是否是以欣喜若狂?

簡而言之,當您要預測的資訊直接或間接出現在訓練資料集中時,就會發生标簽洩漏或目标洩漏。它會導緻模型誇大其泛化誤差,并極大地提高了模型的性能,但模型對于任何實際應用都毫無用處。

資料洩漏如何發生

最簡單的示例是使用标簽本身訓練模型。在實踐中,在資料收集和準備過程中無意中引入了目标變量的間接表示。觸發結果的特征和目标變量的直接結果是在資料挖掘過程中收集的,是以在進行探索性資料分析時應手動識别它們。

資料洩漏的主要名額是“太好了,不能成為現實”模型。由于該模型不是優秀模型,是以在預測期間最有可能表現不佳。

資料洩漏不僅可以通過訓練特征作為标簽的間接表示來實作。也可能是因為來自驗證或測試資料的某些資訊保留在訓練資料中,或者使用了來自将來的曆史記錄。

資料洩露是一個專用名詞,表示有入模變量和target目标變量作用極其相似,這樣會讓模型提前知道預測結果,發生作弊,模型表現接近完美,如下圖。

資料洩露-揭秘機器學習模型如何作弊

如果用通俗易懂方法闡述,資料洩露變量就像一個時空機,讓模型提前看到未來。這有點像科幻電影。雖然資料洩漏很酷,卻讓模型作弊,提前知道了預測結果。

資料洩露-揭秘機器學習模型如何作弊

查找資料洩露方法​

我們變量篩選環節需要查找是否存在資料洩露變量。

方法1,變量相關性檢驗​

查找方法很多,最好方法是看變量相關性。資料洩漏變量和target目标變量相關性會接近1

資料洩露-揭秘機器學習模型如何作弊

方法2.模型法

第二種方法是模型法,通過變量重要性來觀察資料洩漏變量。如下圖lightgbm在資料洩漏觀察中效果不如catboost。lightgbm變量重要性排序中,每個變量權重都會考慮相對平衡。catboost變量重要性會突出重要變量,這樣更容易找出資料洩漏變量。

資料洩露-揭秘機器學習模型如何作弊
資料洩露-揭秘機器學習模型如何作弊

我方​​《python風控模組化實戰lendingClub》​​教程中重點闡述了catboost算法細節運用,有興趣朋友可前往了解。

總結