以下文章來源於數據派THU,作者數據派THU
諸如銀行的欺詐檢測、營銷的實時競價或網路的入侵檢測等領域的資料集都有哪些共同點?
在這些領域的資料通常只佔有總資料量不到1%,為罕見但“有趣的”事件(例如,騙子使用信用卡、使用者點選廣告或入侵伺服器掃描其網路)。然而,絕大多數機器學習演算法並不能很好地處理這些非均衡的資料集。利用以下七種技術可以透過訓練一個分類器來檢測出上述異常類。
1. 使用正確的評估指標
對於那些使用非均衡資料的模型來說,應用不恰當的評估度量指標非常危險。想象一下,假設訓練資料如上圖所示,如果用準確率來衡量一個模型的好壞,那麼將所有測試樣本分類為“0”的模型將具有極好的準確率(99.8%),顯然,這個模型不會提供任何有價值的資訊。
在這種情況下,可以採用其他評估指標,例如:
🔺精度/特異性:有多少選定例項是相關的。
🔺召回率/敏感度:選擇了多少個相關的例項。
🔺F1評分:精度和查全率的調和平均值。
🔺MCC:觀察到的和預測到的二元分類之間的相關係數。
🔺AUC:真陽性率與假陽性率之間的關係。
2. 重新取樣訓練集
除了使用不同的評估標準外,還可以採取一定的措施以獲取到其他不同的資料集,通常利用欠取樣和過取樣兩種方法從非均衡資料集中提取出均衡資料集。
2.1 欠取樣
透過減少不同類的大小來平衡資料集的過程稱為欠取樣,當資料量充足時,使用該方法。透過將所有樣本保留到稀有類中,並在不同類中隨機選擇相同數量的樣本,在後續建模過程中便可以檢索到一個新的均衡資料集。
2.2 過取樣
相反,當資料量不足時,則使用過取樣。過取樣透過增加稀有樣本的大小來平衡資料集。在不去除大量的樣本的情況下,透過使用重複、引導或SMOTE(合成少數過取樣技術)來生成新的稀有樣本。
請注意,以上兩種重取樣方法並沒有各自絕對的優勢,這兩種方法的應用取決於用例和資料集本身,過取樣和欠取樣兩種方法的組合往往也能成功。
3. 正確使用k倍交叉驗證
值得注意的是,在使用過取樣的方法來解決非均衡資料問題時,可以適當地應用交叉驗證。
請記住,過取樣觀察到的是稀有樣本,並利用自舉法根據分佈函式生成新的隨機資料。如果在過取樣後應用交叉驗證,便會將模型過擬合到一個特定的人工自舉結果中。這就是為什麼應該在過取樣資料之前進行交叉驗證,正如應該在實現特徵之前對特徵做出選擇一樣,只有透過重複取樣資料,方可在資料集中引入隨機性,確保不會出現過擬合問題。
4. 整合不同的重取樣資料集
成功泛化模型的最簡單方法是使用更多的資料。像邏輯迴歸或隨機森林等開箱即用的分類器傾向於透過丟棄稀有類來實現泛化。一個簡單而有效的實踐是針對稀有類的所有樣本和多數類的n個不同樣本,建立n個模型。假設需要整合10個模型,保留例如1.000個稀有類的案例,並隨機抽取10.000個多數類的案例,然後把10.000個多數類分成10塊,訓練10個不同的模型。
如果存在大量的資料,那麼這種方法非常簡單,並且完全可水平擴充套件,可以在不同的叢集節點上訓練和執行模型。整合模型也可更好地泛化,這種方法非常易於處理。
5. 按照不同的比例重新取樣
透過調整稀有類和多數類之間的比例,利用前文所述的幾種方法來進行微調。兩種類數目的最佳配比在很大程度上取決於資料本身和所使用的模型。
與其以相同的比例訓練所有的模型,還不如嘗試以不同比例整合資料。如果訓練了10個模型,那麼比例為1:1(稀有:多數)和比例為1:3,甚至是2:1的模型均可能都是有意義的,類的權重取決於所使用的模型。
6. 聚類多數類
Quora 的Sergey提出了一種更加優雅的方法,他建議將多數類聚類到r組中,r即r組中的案例數, 取代隨機樣本來覆蓋訓練樣本的多樣性。對於每一組,只保留medoid(聚類的中值),然後用稀有類和medoids對模型進行訓練。
7. 設計自定義模型
前文所述的方法關注的是資料,將模型視為一個固定的元件。但事實上,如果模型本身適用於非均衡的資料,就無需對資料進行重新取樣。如果類沒有太多的傾斜, XGBoost便很好用了,因為其內部已經關注了袋子裡的不均衡資料。但話說回來,這也只是在秘密的情況之下,對資料重新取樣。
透過設計一個成本函式,對稀有類的錯誤分類進行懲罰,而不是對多數類的錯誤分類進行懲罰,有可能設計出許多有利於稀有類泛化的模型。例如,配置一個SVM,以懲罰稀有類的錯誤分類。
小結
本文的內容並非唯一的技術列表,只是處理非均衡資料的一個起點。也不存在能解決所有問題的最佳方法或模型,強烈建議嘗試不同的技術和模型來評估哪種方法最為有效,可以嘗試有創意地將多種方法結合起來使用。同樣需要注意的是,在欺詐檢測、實時競價等諸多領域,當非均衡類別發生的同時,“市場規則”也在不斷變化。因此,需要檢查過往的資料是否已經過時了。
文章來源:數據派THU
文章連結:https://mp.weixin.qq.com/s/idiUOQXcXRYtXYzr-T1eww
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~
文章推薦
◆跟資料打交道的人都得會的這8種資料模型,滿足工作中95%的需求
回顧十週入門數據分析系列文:
關注數據君的臉書:
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!