樣本不均衡時出現問題的原因
- 本質原因:模型在訓練時優化的目標函數和測試時使用的評價標准不一致
- 這種不一致:
- 訓練數據的樣本分布與測試時期望的樣本分布不一致
- 訓練階段不同類別的權重(重要性)與測試階段不一致
解決方法
基於數據的方法
對數據進行重采樣,使樣本變得均衡
- 隨機采樣:
- 過采樣:從\(S_{min}\)中有放回采樣,可能造成過擬合
- 欠采樣:從\(S_{maj}\)隨機舍棄,可能損失有用信息
- SMOTE算法
- 對少數類樣本集\(S_{min}\)中的每個樣本\(x\),從它在\(S_{min}\)中的K近鄰中隨機選取一個樣本\(y\),然后在\(x,y\)連線上隨機選取一點作為新樣本
- 根據需要的過采樣倍率重復上述過程若干次
- 缺點:
- 為每個少數類樣本合成相同數量的新樣本,增大類間重疊度
- 生成一些不能提供有用信息的樣本
- 改進:
- Borderline-SMOTE:只給處於分類邊界上的少數類樣本合成新樣本
- ADASYN算法:不同的少數類樣本合成不同個數的新樣本
- 數據清理方法(如Tomek Links),降低合成樣本的類間重疊
- Informed Undersampling
- Easy Ensemble算法
- 從多數類\(S_{maj}\)中隨機抽取一個子集\(E(|E|\approx |S_{min}|)\)
- 使用\(E + E_{min}\)訓練分類器;重復上述過程若干次,得到多個分類器
- 最終結果由多個分類器結果融合
- Balance Cascade算法:級聯結構
- 在每一級中從多數類\(S_{maj}\)中隨機抽取子集\(E\)
- 用\(E+S_{min}\)訓練該級的分類器
- 將\(S_{maj}\)中能夠被當前分類器正確判別的樣本剔除掉
- 繼續下一級操作,重復若干次得到級聯結構
- 最終結果也是各級分類器結果的融合
- NearMiss
- 利用K近鄰信息挑選具有代表性的樣本
- One-sided Selection
- 采用數據清理技術
- Easy Ensemble算法
- 其它采樣技術
- 基於聚類的采樣方法
- 數據擴充方法
- Hard Negative Mining