2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

ShowMeAI發表於2022-11-17
2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

? 作者:韓信子@ShowMeAI
? 資料分析實戰系列https://www.showmeai.tech/tutorials/40
? 機器學習實戰系列https://www.showmeai.tech/tutorials/41
? 本文地址https://www.showmeai.tech/article-detail/331
? 宣告:版權所有,轉載請聯絡平臺與作者並註明出處
? 收藏ShowMeAI檢視更多精彩內容

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

? 資料漂移

The Only Constant in Life Is Change. 世界上唯一不變的就是變化本身

這是一句來自希臘的哲學家赫拉克利特寫的話,它很簡單但卻道出了世界的真理之一。在資料科學與機器學習領域,這句話同樣是非常有意義的,在生產中部署機器學習模型的許多實際應用中,資料通常會隨著時間的推移而變化,因此之前構建的模型會隨著時間的推移而變得不準確,效果大打折扣,這就是典型的資料漂移問題。

? 真實案例

2022年3月17日至4月6日,信用報告機構 Equifax 的系統出現問題,導致 ?信用評分不正確,影響到百萬級別的消費者,並導致了針對公司的法律索賠和集體訴訟,業內專家稱,這個問題的根源就是資料漂移。

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

? 資料漂移

? 何為資料漂移

當我們在使用資料科學方法解決場景問題時,得到方案之後,在實際生產環境中,如果我們拿到的實時預測資料,分佈與用於訓練模型的訓練資料分佈有差異時,就發生了『資料漂移』,而它的後果就是預估不再準確,效果下降甚至直接影響公司的收益。

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

簡單的例子,例如用『口罩政策』之前的網際網路資料建模,對『口罩政策』實施時的使用者行為預估,那一定會有偏差;又如我們用日常資料建模,構建電商推薦系統,在 618 和雙11當天預測,可能也會有偏差,模型效果下降。

訓練資料和生產資料之間的差異可能是由多種因素造成的。可能本來使用的訓練資料就不合適。

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

例如,如果使用美國道路資料集訓練和檢測道路狀況,應用在中國的道路上,效果就會差非常多,這也是明顯的資料漂移。

現代網際網路時代,沒分每秒都迅速產生海量大資料,我們的資料來源呈現爆炸式增長也更容易會有變化。我們並不能每次都提前預判到『資料漂移』問題,甚至有時候我們會遇到特殊的網路攻擊,基於『資料漂移』的知識進行調整和切換攻擊方式。

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

例如,我們基於歷史資料構建了效果非常良好的垃圾郵件檢測功能,但攻擊者可能在某個時候改變傳送垃圾郵件的行為,因為送入模型的資料發生了變化,我們原本構建的模型可能真的會被『欺騙』。

因此,很重要的是,我們需要有一套比對和檢測的機制,可以及時發現『資料漂移』,並對其進行處理。

? 檢測方法概述

有很多資料漂移的檢測方法,最簡單的方式是基於統計方法來比較『訓練資料』(稱為基線或參考)和『實時資料』(生產資料)的分佈,如果兩個分佈之間有著顯著差異,我們就判斷為發生資料漂移。

最流行的統計檢驗方法包括 ?Kolmogorov-Smirnov 檢驗、?卡方檢驗、 ?Jensen-Shannon 散度、 ?Wasserstein 距離。 另一類方法是使用機器學習模型來監控資料質量。 我們也可以把兩類方法混合使用。

實際生產環境中,統計的方法使用得很多,它們簡單且有很不錯的效果。下面 ShowMeAI 就基於程式碼告訴大家如何進行『資料漂移』檢測。

? 程式碼實現

? 資料漂移檢測

我們在這裡會使用到 evidently 這個非常簡單易用的工具庫,它是一個專門針對『資料漂移』問題構建的工具庫,可以對資料 / 標籤 / 模型表現等進行檢測,不僅可以輸出報告,還可以啟動實時看板監控。

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

下面匯入工具庫

import pandas as pd
from sklearn import datasets 
from evidently.dashboard import Dashboard
from evidently.dashboard.tabs import DataDriftTab, CatTargetDriftTab

evidently的使用步驟如下,我們會先載入資料,然後做漂移分析和檢測,最後可以構建看板進行分析結果的呈現。

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

我們使用sklearn自帶的 iris 資料集作為示例來給大家講解,我們把對應的資料和標籤讀取出來。

iris = datasets.load_iris()
iris_frame = pd.DataFrame(iris.data, columns = iris.feature_names)
iris_frame['target'] = iris.target

我們把完整的資料集切分為訓練集和測試集,對其進行對比和資料漂移分析,最後構建儀表盤看板:

iris_data_drift_report = Dashboard(tabs=[DataDriftTab(verbose_level=verbose), 
                                         CatTargetDriftTab(verbose_level=verbose)])
iris_data_drift_report.calculate(iris_frame[:75], iris_frame[-new_samples:], column_mapping = None)
iris_data_drift_report.show(mode="inline")

注意到引數verbose,它是布林值,用於控制顯示儀表板的詳細程度。 上述程式碼中我們設定為 False,會得到一個報告如下,裡面詳細分析了訓練集和測試集的『特徵欄位』和『標籤』的分佈差異情況:

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

我們也可以透過下列程式碼去開啟看板和儲存html報告。

iris_target_drift_dashboard.show()
iris_target_drift_dashboard.save('iris_target_drift.html')
2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

參考資料

2022!影響百萬使用者金融信用評分,Equifax被告上法庭,罪魁禍首——『資料漂移』!⛵

相關文章