1. 程式人生 > >AiChallenger比賽記錄之樣本不均衡

AiChallenger比賽記錄之樣本不均衡

如何處理樣本不均衡

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]文字多分類踩過的坑