數據集分類不平衡的影響與處理



不平衡分類對預測建模提出了挑戰,因爲用於分類的大多數機器學習算法都是圍繞每個類別的樣本數量均相等的假設來設計的。這導致模型的預測性能較差,特別是針對樣本較少類別的預測。這是構建數據集需要考慮的一個問題,通常數量較少的類別更重要,因爲與數量較多的類別來說,模型對樣本較少的分類錯誤更爲敏感。


1. 分類預測建模

分類問題是預測建模問題,涉及爲每個觀察值分配一個類別標籤。分類模型會生成預測的類別,輸出是離散的值。對於大多數實際應用,模型會通過softmax函數輸出每一個類別的概率,然後選取置信度(概率)最大的類別輸出。

當描述問題時,預測建模問題的類別數通常是固定的,並且類別數通常不會改變。與迴歸模型一樣,分類模型會產生連續值的預測,該預測通常以概率的形式出現(即,任何單個樣本的類成員的預測值在0到1之間,且總和爲1)。

在處理分類預測建模問題時,必須收集訓練數據集。分類問題中的數據由樣本和標籤組成。訓練數據集是來自領域的許多示例,包括輸入數據(例如,測量值)和輸出數據(例如,類別標籤)。訓練數據集用於更好地理解輸入數據,以幫助最佳地進行建模準備。它還用於評估一組不同的建模算法。它用於調整所選模型的超參數。最後,訓練數據集用於在所有可用數據上訓練最終模型,可以使用這些模型對新的數據進行預測。


2. 不平衡分類

屬於每個類別的示例的數量稱爲類別分佈。不平衡分類是指分類預測建模問題,其中訓練數據集中每個類標籤的示例數不平衡。也就是說,數據集中,每類樣本的數量不相等。當一個或多個類別在訓練數據中所佔的比例低於其它類別時,就會出現不平衡。

描述數據集中類的不平衡的另一種方法是將類分佈總結爲訓練數據集的百分比。例如,不平衡的多類分類問題可能在第一類中有80%的示例,在第二類中有18%的示例,在第三類中有2%的示例。


3. 分類失衡的原因

不平衡的分類預測建模問題中類分佈的不平衡可能有很多原因。導致失衡的兩個主要原因,分別是數據採樣和屬性。跨類別的示例中的不平衡可能是由於從問題域中收集或採樣示例的方式引起的。這可能涉及在數據收集過程中引入的偏差,以及在數據收集過程中發生的錯誤。比如偏差採樣和測量誤差。

例如,示例可能是從狹窄的地理區域或某個時間段收集的,而類別的分佈可能完全不同,甚至可能以不同的方式收集。

收集觀測值時可能會出錯。一種錯誤類型可能是將錯誤的類標籤應用於許多示例。或者,從中收集示例的過程或系統可能已損壞或受損,從而導致不平衡。

通常,在不平衡是由採樣偏差或測量誤差引起的情況下,可以通過改進的採樣方法或校正測量誤差來校正不平衡。這是因爲訓練數據集不能正確的表示要解決的問題域。


4. 分類失衡的挑戰

分類不平衡因問題而異。分類問題可能存在輕微的不平衡或者會存在嚴重的失衡,比如其中一個類中可能有數百或數千個示例,而另一類中可能有數十個示例。

輕微失衡:一個不平衡的分類問題,其中樣本的分佈在訓練數據集中很少(例如4:6)。
嚴重失衡:在訓練數據集中大量的示例分佈不均勻的不平衡分類問題(例如1:100或更多)。

現在大多數分類失衡的數據集都集中在1:4至1:100的失衡比率上。在欺詐檢測或化學信息學等現實應用中,可能會處理不平衡率從1:1000到1:5000的問題。輕微的不平衡通常不是問題,並且可以像正常分類預測建模問題一樣對待。嚴重不平衡可能很難建模,需要使用專門的技術。

具有大量示例的一個或多個類稱爲主要或多數類,而具有少量示例(通常只有一個)的類稱爲次要或少數類。當處理分類不平衡問題時,通常最關注樣本數較少的類別。這意味着模型正確預測少數樣本的類別標籤的能力比多數樣本更爲重要。

少數派類別很難預測,因爲按照定義,此類類別的例子很少。這意味着模型要學習此類中的示例的特徵,並將此類中的示例與多數類(或多個類)區分開來更具挑戰性。

針對分類預測模型的大多數機器學習算法都是在假設類均等分佈的問題上進行設計和演示的。這意味着模型可能只專注於學習大量觀測的特徵,而忽略了少數類別中實際上更受關注且其預測更有價值的示例。大多數分類算法的學習過程通常偏向多數類示例,因此少數類算法無法很好地建模到最終系統中。

儘管在過去的二十年中,人們在學習失衡方面做了大量工作,但現有方法和問題仍有許多缺點有待解決。


5. 分類失衡的例子

下面列出了該問題領域的十個示例,其中示例的類分佈固有地不平衡。

  • 欺詐識別。
  • 索賠預測
  • 默認預測。
  • 流失預測。
  • 垃圾郵件檢測。
    異常檢測。
  • 離羣值檢測。
  • 入侵檢測
  • 轉換預測。

實例列表闡明瞭不平衡分類預測建模的性質。

這些問題領域中的每一個都代表了整個研究領域,每個領域中的特定問題都可以作爲不平衡的分類預測建模加以構架和探索。這凸顯了類不平衡分類的多學科性質,以及爲什麼對於機器學習從業者來說,意識到這一問題並熟練地解決這一問題如此重要。


6.解決方法

算法方法:機器學習算法對假陽性和假陰性的懲罰相同。一種應對方法是修改算法本身,以提高少數羣體類別的預測性能。這可以通過基於識別的學習或成本敏感的學習來執行。 Drummond & Holte (2003); Elkan (2001); Manevitz & Yousef (2001)

數據方法:包括對數據進行重新採樣以減輕類不平衡導致的影響。數據方法更靈活並允許使用最新算法,因此已在實踐中廣爲接受。兩種最常見的技術是過採樣和欠採樣。

  • 過採樣,會增加訓練集中少數羣體成員的數量。過採樣的優點是不會保留原始訓練集中的信息,因爲會保留少數和多數類別的所有觀察結果。另一方面,它容易過度擬合。

  • 欠採樣,與過採樣相反,旨在減少多數樣本的數量來平衡類分佈。由於它正在從原始數據集中刪除觀察結果,因此可能會丟棄有用的信息。
    在這裏插入圖片描述
    之前一篇文章中介紹了設置class_weight實現類別的平衡的方法。此外還常使用過採樣和欠採樣方法。常用的方法有:

  • EditedNearestNeighbours欠採樣技術(E2_ENN)

  • NearMiss 3 欠採樣技術(E3_NM)

  • SMOTE過採樣技術(E4_SMT)

  • ADASYN過採樣技術(E5_ADS)

  • EditedNearestNeighbours & “Balanced” class_weight (E6_ENN)

  • NearMiss 3 & “Balanced” class_weight (E7_NM)

  • SMOTE & “Balanced” class_weight (E8_SMT)

  • ADASYN & “Balanced” class_weight (E9_ADS)


7. 混淆矩陣,精度,召回率和F1分數

在這裏插入圖片描述
一類的F1分數爲精度(查準率,precision)和查全率(召回率,recall)的調和平均值(2×精度×查全率/(精度+查全率))

**對於給定的類,召回率和精度的不同組合具有以下含義:

  • 高召回率+高精度:模型可以完美地處理類
  • 召回率低+精度高:該模型無法很好地檢測到類別,但在進行分類時是高度可信賴的
  • 召回率高+精度低:可以很好地檢測類別,但是模型中也包含其他類別的點
  • 召回率低+精度低:模型處理不佳**

https://link.springer.com/article/10.1007/s13748-016-0094-0
https://medium.com/james-blogs/handling-imbalanced-data-in-classification-problems-7de598c1059f
https://machinelearningmastery.com/what-is-imbalanced-classification/
https://towardsdatascience.com/handling-imbalanced-datasets-in-machine-learning-7a0e84220f28

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