【機器學習】數據不平衡問題


1.  什麼是數據不平衡問題

       當數據集中樣本類別不均衡時我們就說發生了數據不平衡問題。

2.  解決數據不平衡問題的方法

       爲了方便起見,把數據集中樣本較多的那一類稱爲“大衆類”,樣本較少的那一類稱爲“小衆類”。

2.1. 採樣法

       採樣法是通過對訓練集進行處理使其從不平衡的數據集變成平衡的數據集。

       採樣法分爲過採樣(Over Sampling)和欠採樣(Under Sampling),過採樣是把小衆類複製多份,欠採樣是從大衆類中選取部分樣本。

       過採樣的缺點:訓練數據集中會反覆出現一些相同的樣本,訓練出來的模型容易表現出過擬合現象。爲了解決過採樣的弊端,可以在新生成的數據點中加入輕微的隨機擾動,經驗表明這種做法非常有效。

       欠採樣的缺點:訓練數據集中部分信息丟失,訓練出來的模型容易表現出欠擬合現象。由於欠採樣會丟失信息,解決此弊端的方法有兩種:EasyEnsembleBalanceCascade

       EasyEnsemble:使用自助採樣法在大衆類數據集中採出多個採樣集,將小衆類樣本分別和大衆類採樣集結合,訓練出多個模型,組合多個模型的結果,得到最終的結果。

       BalanceCascade:先通過一次欠採樣產生訓練集,訓練一個分類器,然後使用該分類器對大衆類中的樣本進行分類,在分類錯誤的樣本集中再次使用欠採樣產生訓練集,訓練第二個分類器,以此類推,最後組合所有分類器的結果得到最終結果。

2.2. 數據合成法

       數據合成方法是利用已有樣本生成更多樣本,這類方法在小數據場景下有很多成功案例,比如醫學圖像分析等。

       SMOTE(Synthetic MinorityOversampling Technique)即合成少數類過採樣技術,其思想是:對每個少數類樣本a,從與它的最近鄰的k個樣本中隨機選一個樣本b,然後在a、b之間的連線上隨機選一點作爲新合成的少數類樣本。

       對於小衆類樣本,從與它最近鄰的k個樣本中選取一個樣本點,生成一個新的小衆類樣本,其中是隨機數。

       SMOTE缺點:增加了類之間重疊的可能性;生成一些沒有提供有效信息的樣本。

       解決SMOTE算法的弊端,改進的方法爲Borderline-SMOTE

       Borderline-SMOTE的思想是隻爲小衆類的邊界樣本生成新樣本,即那些周圍大部分是大衆類樣本的小衆類樣本生成新樣本。

       爲每個小衆類樣本找出其最近鄰的k個樣本,若k個樣本中有一半以上都是大衆類樣本,則爲該小衆類樣本生成新樣本。生成新樣本時使用SMOTE。

2.3. 代價敏感學習法

       採樣算法從數據層面解決了數據不平衡的學習問題,而在算法層面上解決數據不平衡的方法主要是代價敏感學習法(Cost-SensitiveLearning)。

       代價敏感學習法的核心要素是代價矩陣,由類別誤判的懲罰係數構成。基於代價矩陣,可將數據不平衡問題簡化爲:在當前數據集代價矩陣下,使所有樣本分類後的結構風險最小化的最優化問題。

3.  如何選擇解決數據不平衡問題的方法

       在正負樣本都非常之少的情況下,應該採用數據合成的方式;在正負樣本都足夠多且比例不是特別懸殊的情況下,應該考慮採樣法或代價敏感學習法。

4.  數據不平衡問題模型評估

       正確率、F度量、ROC曲線


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章