如果不同類别的訓練樣例數目稍有差别,通常影響不大,但若差别很大,則會對學習過程造成困擾。例如有998個反例,但正例隻有2個,那麼學習方法隻需傳回一個永遠将新樣本預測為反例的學習器,就能達到99.8%的精度;然而這樣的學習器往往沒有價值,因為它不能預測出任何正例。
類别不平衡(class-imbalance)就是值分類任務中不同類别的訓練樣例數目差别很大的情況。不是一般性,本節假定正類樣例較少,反類樣例較多。在現實的分類任務中,我們經常會遇到類别不平衡,例如在通過拆分法解多分類問題時,即使原始問題中不同類别的訓練樣例數目相當,是以有必要了解類别不平衡性處理的基本方法。
從線性分類器的角度讨論容易了解,在我們用
對新樣本x進行了分類時,事實上在用預測出的y值與一個門檻值進行比較,例如通常在y>0.5時判别為正例。y實際上表達了正例的可能性,幾率y/(1-y)則反映了正例可能性與反例可能性之比值,門檻值設定為0.5恰表明分類器認為真實正、反例可能性相同,即分類器決策規劃為:
若y/(1-y) > 1則,預測為正例 (1)
然而,當訓練集中正、反例的數目不同時,令
表示正例數目, 表示反例數目,則觀測幾率是,由于我們通常假設訓練集是真實樣本總體的無偏估計,是以觀測幾率就代表了真實幾率。于是隻要分類器的預測幾率高于觀測幾率就應判定為正例,即
若
則 預測為正例 (2)
但是,我們的分類器是基于式(1)進行比較決策,是以,需對其預測值進行調整,使其基于式(1)決策時,實際上是在執行式(2),要做到這一點很容易,隻需令
(3)- 第一類是直接對訓練集裡的反類進行“欠采樣(undersampling)",即去除一些反例使得正、反例數目接近,然後再進行學習;
- 第二類是對訓練集裡的正類樣例進行“過采樣(oversampling)”,即增加一些正例使得正、反例數目接近,然後再進行學習;
- 第三類則是直接基于原始訓練集進行學習,但在用訓練好的分類器進行預測時,将式(3)嵌入到其決策過程中,稱為“門檻值移動”(thresholding-moving)。