天天看點

機器學習中的類不平衡問題

如果不同類别的訓練樣例數目稍有差别,通常影響不大,但若差别很大,則會對學習過程造成困擾。例如有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)。
上一篇: 遊戲性能
下一篇: 測試