在很多機器學習任務中,訓練集中可能會存在某個或某些類別下的樣本數遠大於另一些類別下的樣本數目。即類別不平衡,為了使得學習達到更好的效果,因此需要解決該類別不平衡問題。
什麼是類別不均衡問題
類別資料不均衡是分類任務中乙個典型的存在的問題。簡而言之,即資料集中,每個類別下的樣本數目相差很大。例如,在乙個二分類問題中,共有100個樣本(100行資料,每一行資料為乙個樣本的表徵),其中80個樣本屬於class 1,其餘的20個樣本屬於class 2,class 1:class2=80:20=4:1,這便屬於類別不均衡。當然,類別不均衡問同樣會發生在多分類任務中。它們的解決方法是一樣的。因此,為了便於討論與理解,我們從二分類任務入手進行講解。
類別不均衡問題是現實中很常見的問題
八大解決方法
特別是:
roc曲線(roc curves):見assessing and comparing classifier performance with roc curves
這些想法只是冰山一角,你可以想到更多的有趣的和有創意的想法去解決問題。更多的想法參加reddit的文章
選擇某一種方法並使用它
你不必成為乙個精通所有演算法的演算法奇才或者乙個建立準確而可靠的處理資料不平衡的模型的統計學家,你只需要根據你的問題的實際情況從上述演算法或方法中去選擇一種或兩種方法去使用。希望上述的某些方法能夠解決你的問題。例如使用其它評價指標或重取樣演算法速度快並且有效。
總結記住,其實並不知道哪種方法最適合你的任務與資料,你可以使用一些啟發式規則或經驗去選擇某乙個較優演算法。當然最好的方法測試每一種演算法,然後選擇最好的方法。最重要的是,從點滴開始做起,根據自己現有的知識,並不斷學習去一步步完善。
further reading…
這裡有一些我認為有價值的可供參考的相關資料,讓你進一步去認識與研究資料不平衡問題:
在類別不平衡中,以下幾個點需要注意:
參見:abhishek ghose』s answer to what』s the most efficient classification algorithm for unbalanced data sets? and what pre-processing could be done to optimize the score?
原文:
在分類中如何處理訓練集中不平衡問題
在很多機器學習任務中,訓練集中可能會存在某個或某些類別下的樣本數遠大於另一些類別下的樣本數目。即類別不平衡,為了使得學習達到更好的效果,因此需要解決該類別不平衡問題。什麼是類別不均衡問題 類別資料不均衡是分類任務中乙個典型的存在的問題。簡而言之,即資料集中,每個類別下的樣本數目相差很大。例如,在乙個...
如何處理不平衡資料
過取樣 過擬合 學習到小類別樣本中的雜訊 欠取樣 欠擬合 丟失大類別樣本中的重要資料 找到小類別樣本中的k個近鄰,然後在他們之間的連線上取點,作為新的樣本。缺點 容易過擬合 其與smote的不同是 smote是對每乙個minority樣本產生綜合新樣本,而borderline smote僅對靠近邊界...
如何處理標籤不平衡問題
訓練集標籤類別不平衡是機器學習模型訓練非常常見的乙個問題。它是指訓練集中標籤a和標籤b樣本數比例差別很大,當要 小類標籤,即使模型的效果特別差,模型 的準確率也能達到很高的數值。因此,我們需要處理不平衡的資料集,避免這種情況出現。一般情況下,我們需要處理的是極不平衡的問題 比如類別比例在1 100 ...