Abstract
非平衡數據集是一個在現實世界應用中經常發現的一個問題,它可能會給機器學習算法中的分類表現帶來嚴重的負面影響。目前有很多的嘗試來處理非平衡數據的分類。在這篇文章中,我們同時從數據層面和算法層面給出一些已經存在的用來解決非平衡數據問題的簡單綜述。盡管處理非平衡數據問題的一個通常的做法是通過人為的方式,比如超采樣或者降采樣,來重新平衡數據,一些研究者證實例如修改的支持向量機,基于粗糙集的面向少數類的規則學習方法,敏感代價分類器等在非平衡數據集上面也表現良好。我們觀察到目前在非平衡數據問題上面的研究正趨向于使用混合算法。
關鍵詞:敏感代價學習,非平衡數據集,修改的SVM,超采樣,降采樣
1. Introduction
如果一個數據集中某一個類別的樣本遠遠多余其他的類別,那么我們就稱這種數據為非平衡數據。當數據中至少一個類別代表了訓練樣例中很少的數量(稱為少數類),而其他類別組成了大多數時,數據就會失衡。在這種狀況下,分類器能夠在多數類上面有很好的準確率,但是在少數類上準確率卻很糟糕,主要是因為更大的多數類在傳統訓練標準上面的影響。很多原始的分類算法追求最小化錯誤率:不準確預測類別標記的百分比。他們往往忽視了不同種類的分類錯誤之間的不同。特別地,他們暗自的假定了所有的分類錯誤都有著相同的代價。
在很多現實世界的應用中,這種假定是不正確的。不同分類錯誤之間的差異可能是相當大的。例如,在癌癥的醫療診斷中,如果我們把有癌癥視為正類別,無癌癥(健康)視為負類別,那么漏診(病人本身得了癌癥,但是卻預測其沒得,這也被稱為“假陰性”,false negtive)的代價要比誤診(假陽性,false positive)嚴重得多。
病人可能失去他的生命僅僅是因為延誤了最佳的診斷和治療階段。同樣地,如果攜帶炸彈視為正類別,那么漏檢掉一個攜帶炸彈上飛機的恐怖分子要比搜查一個無辜的人代價大得多。
非平衡數據問題在現實世界的很多應用中都有出現,例如文本歸類,故障監測,欺騙檢測,衛星圖像中的油田漏油監測,毒理學,文化建模,醫療診斷等[1]。很多關于非平衡數據集的研究論文通常都認為,由于不相等的類別分配,已經存在的分類器的表現都偏向于多數類。現存分類算法在非平衡數據集上表現糟糕的原因主要有這幾點:1.它們是準確率驅動的,它們的目標是最小化整體的錯誤率,這樣一來少數類在其中起到的作用就很小了。2.它們假設數據中所有的類別都有同等的分配。3.它們同時假設不同類別分類錯誤的代價是相同的[2]。由于數據的不平衡,數據挖掘學習算法往往產生退化的模型,它們并沒有把少數類考慮進去,因為大多數數據挖掘算法都是假設數據是平衡的。
很多非平衡數據分類問題的解決方案之前都有人同時從數據層面和算法層面上提出過[3]。在數據層面,這些解決方法包括多種不同形式的重采樣,例如隨機超采樣放回,隨機降采樣,直接超采樣(沒有新的樣例產生,但是樣例被替換的選擇是知道的,而不是隨機的),直接降采樣(同樣樣例被去除的選擇是知道的),新樣本迭代方式被告知的超采樣以及以上所有技術的結合。在算法層面,解決方法包括調整不同類別的代價以反向的削減類別不平衡影響,調整樹的葉節點的概率評估(當使用決策樹時),調整決策閾值,基于識別(從一個類中學習)而不是基于辨別(兩種類別)的學習。
解決非平衡數據最普遍的技術包括重新調整訓練接,使用代價敏感的分類器和雪球法。最近,不少在非平衡數據上有很好表現的方法被提出來了。這些方法包括修改的SVMs,K臨近法(KNN),神經網絡,遺傳編程,基于粗糙集的算法,概率決策樹和機器學習方法。下一節將介紹各種方法的細節。
2. Sampling Methods
一種簡單的數據層面的平衡不同類別的方法就是對原始數據集進行重采樣,要么對少數類進行超采樣,或者對多數類進行降采樣,直到不同類別的數據差不多是相同的為止。這兩種策略能夠被用在任何學習系統中,因為它們相當于是一種預處理階段,允許學習系統來接收訓練實例就好像他們是屬于一個已經平衡的數據集。這樣一來,系統由于每一類別不同比例的訓練樣本而帶來的對于多數類的任何偏向都能夠被削減和抑制了。
Hulse等人[4]提出重采樣方法的作用取決于很多的因素……(待更新)
Reference
- [Journal Paper] An overview of classification algorithms for imbalanced datasets,IJETAE_0412_07
- [Data Science] Learning from Imbalanced Classes,(Jupyter,Notebooks)
- [Quora] In classification, how do you handle an unbalanced training set?
- [Github] 不平衡數據分類(Imbalanced data classification)
- [SimaFore] Predictive analytics on unbalanced data: classification performance
- [Paper] Overview of classification algorithms for unbalanced data
- [IEEE] Unbalanced Data Classification Using <i>extreme outlier</i> Elimination and Sampling Techniques for Fraud Detection
- [Analytics Vidhya] Practical Guide to deal with Imbalanced Classification Problems in R
- [推酷] 用R語言實現對不平衡數據的四種處理方法
- [CSDN] 在分類中如何處理訓練集中不平衡問題 1 | 2
- [機器之心] 從重采樣到數據合成:如何處理機器學習中的不平衡分類問題?
(注:感謝您的閱讀,希望本文對您有所幫助。如果覺得不錯歡迎分享轉載,但請先點擊 這里 獲取授權。本文由 版權印 提供保護,禁止任何形式的未授權違規轉載,謝謝!)