1. 程式人生 > >13.解決樣本不均衡問題

13.解決樣本不均衡問題

實際工作中經常遇到樣本不均衡問題,比如某P2P平臺預測使用者信譽,1為信譽良好,0為有違約記錄,樣本採集下來為1的樣本佔絕大多數(比如90%),此時如果你用分類模型,目標函式是準確率,那麼即使你全部預測為1,那麼準確率也為90%,會極大的影響模型效果。

因此在我們在訓練模型之前,先要處理樣本均衡的問題,總結方法如下:

1.上下采樣:上取樣為增加小眾樣本數量(一份資料複製多份),下采樣為減少大眾樣本數量(剔除部分樣本),上取樣的問題是如果運氣好那麼一下會預測對很多點,運氣差則全部預測錯,常用的方法是在上取樣的基礎上增加一點擾動。

2.資料合成:比如圖形問題,可以對小眾樣本圖形旋轉一定角度變成新的樣本。

這裡提到smote演算法。smote在小眾類中K近鄰隨機選一個點,增加一些擾動生成新的點。

3.加權。即增加小眾樣本的權重(這點聯想到GBDT那裡增加預測錯誤樣本的權重),但是難點在權重如何定。

文章大概介紹的思想是:

1.能否再多采集一些資料,讓小眾樣本足夠多

2.換一種目標函式,比如準確率會有偏差,那麼換成ROC,recall試試

3.上下采樣的思想

4.資料合成的思想

5.用用對樣本分佈不敏感的模型,如樹模型

6.嘗試Penalized類模型(會對分錯的小眾類很高的懲罰)如 penalized-SVM and penalized-LDA

7.對分佈極不均衡的樣本,可以轉換為求異常值