天天看點

分類任務中資料類别不平衡問題的幾種解決方案

類别不平衡(class-imbalance),是指分類任務中不同類别的訓練樣例數目差别很大的情況(例如,訓練集正類樣例10個,反類樣例90個),本文假設正類樣例較少,反類樣例較多。

現有解決方案大體分為三類,如下文所示。

欠采樣(undersampling)

欠采樣方法,即去除一些反類樣例,使得正、反類樣例數量接近。

EasyEnsemble為欠采樣的代表性算法,利用繼承學習機制,将反例劃分為若幹個集合,供不同學習器使用,這樣對每個學習器來看都進行了欠采樣,但在全局來看卻不會丢失重要資訊。

分類任務中資料類别不平衡問題的幾種解決方案

上圖為EasyEnsemble示意圖,若反例樣本是正例樣本數量的4倍,将反例樣本随機劃分成4個集合,每個集合分别和全部正例樣本組成不同的訓練集,每個訓練集由不同學習器進行學習,這樣,每個訓練集的資料都是平衡的,全局來看又不會舍棄掉任何反例樣本。

過采樣(oversampling)

過采樣,即增加一些正例,使得正、反類樣例數量接近。

SMOTE,過采樣的代表性算法,通過對訓練集的正例進行插值,來産生額外的正例。

門檻值移動(threshold-moving)

門檻值移動,直接基于原始訓練集進行學習,但是修改分類器預測時的決策過程;下面以邏輯回歸(logistics regression)為例,進行說明。

邏輯回歸(logistics regression),即對數幾率回歸,其模型可以表示為:

y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(w^\mathrm{T}x+b)}} y=1+e−(wTx+b)1​

即:

ln ⁡ y 1 − y = w T x + b \ln{\frac{y}{1-y}}=w^\mathrm{T}x+b ln1−yy​=wTx+b

其中, y y y為預測得到結果, x x x為輸入樣本資料, w w w和 b b b為模型權值和偏置。

分類任務中資料類别不平衡問題的幾種解決方案

如上圖所示,圖中曲線為對數幾率函數(Sigmoid 函數的一種),是以, y y y在0到1之間。

我們将 y y y視為樣本 x x x為正例的可能性,那麼 1 − y 1-y 1−y是其為反例的可能性,幾率 y 1 − y \frac{y}{1-y} 1−yy​反映了正例可能性和反例可能性之比。

一般情況下,

當樣本平衡時,分類器的決策規則為:

  • 若 y 1 − y > 1 \frac{y}{1-y}>1 1−yy​>1 ,則 預測為正例;
  • 上條規則亦可以表示為,若 y > 0.5 y>0.5 y>0.5 ,則 預測為正例。

當樣本不平衡時,記 m + m^+ m+為正例樣本數量, m − m^- m−為反例樣本數量,分類器決策規則變為:

  • 若 y 1 − y > m + m − \frac{y}{1-y}>\frac{m^+}{m^-} 1−yy​>m−m+​ ,則 預測為正例;
  • 上條規則亦可以表示為,若 y 1 − y × m − m + > 1 \frac{y}{1-y}\times\frac{m^-}{m^+}>1 1−yy​×m+m−​>1,或 y > m + m y>\frac{m^+}{m} y>mm+​,則 預測為正例。

這種類别不平衡學習的政策也叫“再縮放”(rescaling)或“再平衡”(rebalance)

繼續閱讀