AiChallenger比賽記錄之樣本不均衡
阿新 • • 發佈:2018-11-11
如何處理樣本不均衡
1.1 選擇合適的評價指標:
- 不要採用準確率(Accuracy);
- 主流評估方法包括:ROC,Precision-Recall curve,F1;
1.2若樣本極度不均衡,可作為異常檢測問題處理;
1.3 欠取樣/過取樣:
一般操作就是,對於樣本比較多的類別進行欠取樣,對樣本比較少的類別進行過取樣。但是對於多分類問題,會比較麻煩,而且本賽題是細粒度多分類問題。
常見的過取樣方法:
- 隨機打亂資料;
- 加入噪聲,或隨機剔除部分詞;
- 裁剪掉某一句;
- 複製;
- 翻譯成另一種語言,再翻譯回來,eg.中文->英文->中文;
欠取樣方法: 即對樣本比較多的類別進行取樣。
對於文字分類問題,過取樣存在一定的問題,此處見[3],不贅述。
欠取樣和過取樣的缺點:
- 過取樣:過擬合風險;
- 欠取樣:樣本缺失,偏差較大;
下采樣缺失樣本的解決辦法:
- 1.EasyEnsemble:多次下采樣(放回取樣),訓練多個不同的分類器;
- 2.BalanceCascade:首先一次下采樣產生訓練集,對於分類正確的多樣本類別不放回,只放回分類錯誤的樣本;
- 3.利用KNN試圖挑選那些最具代表性的大眾樣本,叫做NearMiss;
1.4 訓練策略:
在訓練過程中採取的一些方法,例如sklearn中的class_weight,lightgbm和xgboost中的class_weight,他們均給出了引數可以設定類別比例,但是效能要具體討論。
加權Loss:
在nn中常用binary_entropy(二分類)、category_entropy(多分類),作為目標函式,對待不均衡樣本,可以對不同類別進行加權。比如樣本比較少的類別,可以給予較高的權重。
參考資料:
[1]嚴重資料傾斜文字分類,比如正反比1:20~100,適合什麼model,查準一般要做到多少可以上線?
[2]如何處理資料中的「類別不平衡」?
[3]文字分類 - 樣本不平衡的解決思路與交叉驗證CV的有效性
[4]乾貨|如何解決機器學習中資料不平衡問題
[5]文字多分類踩過的坑