1. 程式人生 > >類別樣本不平衡問題

類別樣本不平衡問題

類別不平衡就是指分類任務中不同類別的訓練樣例數目差別很大的情況。下面以這樣的一種情況作為假設例項,假定正類樣例較少,反類樣例較多。

一半對於樣本平衡的二類分類任務,事實上是用預測出的y值與一個閾值進行比較,例如我們通常這樣子比較預測值y>0.5,則樣本為正類,而y<0.5,則樣本為負類。

機率y/(1-y)反映了正例可能性與負例可能性之比值,閾值設定為0.5恰表明分類器認為真實正、反例可能性相同,即分類器決策規則為:

y/(1-y) > 1 則預測為正類

上面的公式是對於正反樣本數量差不多或者差別不是很大的時候的,預測估計模型。當我們的正反樣本的數量的差別很大的時候,這個時候需要對上面的公式做修正,採用一種再縮放的不平衡學習策略。我們領m+表示正例樣本的數量,m-作為負例樣本的數量。,則我們的觀測機率為m+/m-;由於我們通常假設訓練集是真實樣本總體的無偏取樣。因此觀測機率就代表了真實機率。於是,只要分類器的預測機率高於觀測機率就應判定為正類,即

y/(1-y) > m+/m- 則為正類

我們可以對上面的式子的兩邊乘以m-/m+修正,故可以得到類似正負樣本差不多一致的公式,

y/(1-y) 】* 【m-/m+】> 1,則預測為正類

上述的處理也稱為“再縮放”,雖然上面的思想簡單,但實際操作卻並不平凡,主要因為實際中訓練集是真實樣本總體的無偏取樣這個假設往往不成立。也就是說我們未必能有效地基於訓練集觀測機率來推斷出真實機率。現在針對上面的問題有三類技術處理:

1、採用欠取樣,就是去除樣例數量多的,使得兩類數量達到差不多,缺點是可能丟棄了一些重要資訊。代表演算法是整合學習,將樣例數量的類分成幾個集合,這樣對每個學習器來說都進行了欠取樣,但全域性來看卻不會丟失重要資訊。

2、採用過取樣,對樣例數量少的進行擴充,不是簡單重複的使得樣本的數量增多,否則容易造成過擬合。一般是通過對樣例數量少的樣本進行插值來產生額外的樣例。

3、採用【y/(1-y) 】* 【m-/m+】> 1,則預測為正類,再縮放的機制學習