【資料處理】如何處理機器學習中的非均衡資料集?

來源:互聯網
上載者:User
在機器學習中,我們常常會遇到不均衡的資料集。比如癌症資料集中,癌症樣本的數量可能遠少於非癌症樣本的數量;在銀行的信用資料集中,按期還款的客戶數量可能遠大於違約客戶的樣本數量。 比如非常有名的德國信用資料集,正負樣本的分類就不是很均衡:  如果不做任何處理簡單地進行訓練,那麼訓練結果中(以SVM為例),大部分好客戶(約97%)能被正確地識別為好客戶,但是大部分的壞客戶(約95%)卻會被識別為好客戶。這個時候,如果我們僅僅使用accuracy來評價模型,那麼銀行可能會承受違約帶來的巨大損失。在南大周志華老師的《機器學習》“模型的選擇與評價”部分中,就提到了使用Precision、Recall、F1 Score(加權平均Precision和Recall)等更全面評價模型的方法。本文將探討如何解決機器學習中遇到的分類非均衡問題:
  • 過採樣 Over-sampling
  • 下採樣 Under-sampling
  • 上採樣與下採樣結合
  • 整合採樣 Ensemble sampling
  • 代價敏感學習 Cost-Sensitive Learning
註:github開源項目github-scikit-learn-contrib/imbalanced-learn中提供了本回答中大部分演算法的實現代碼,並配有詳細的文檔和注釋。 過採樣 Over-sampling過採樣即是將本來數量少的那類樣本增加。目前比較常見的方法包含了SMOTE, ADASYN, SVM SMOTE,bSMOTE。其中,SMOTE和ADASYN演算法的實現也可以參考這個github項目。我可視化了一下結果:比如說在中,藍色三角形代表的是多數樣本(不妨設為正例),綠色三角形代表的是原始的少數樣本(不妨設為反例),而紅色圓點則是使用SMOTE演算法產生的反例。類似地,ADASYN也可以有類似的效果。不過,SMOTE在一些情況下表現得並不是特別好,也不是很穩定,這也與它本身的演算法思路有關。我們可以對比一下在下面情況下SMOTE和ADASYN的表現:但ADASYN也不是完美無缺的——當分割兩個類別樣本能夠清晰地被劃分而且資料點間隔很大時ADASYN會出現NaN。例如在以下的情況,ADASYN就很可能會出問題: SMOTE:SMOTE: Synthetic Minority Over-sampling TechniqueADASYN:ADASYN: Adaptive Synthetic Sampling Approach for Imbalanced Learning  下採樣 Under-sampling下採樣即是將本來數量多的那類樣本減少。隨機下採樣就不用說了,實現非常簡單。但它的表現並不是很好,因此又有了一些新方法,比較知名的有:
  • Tomek links
  • One-sided selection: Addressing the curse of imbalanced training sets: One-sided selection
  • Neighboorhood Cleaning Rule: Improving identification of difficult small classes by balancing class distribution
  • NearMiss: kNN approach to unbalanced data distributions: A case study involving information extraction

 

上採樣與下採樣結合顧名思義,將原本比較多的樣本所屬類別的樣本減少,同時也將原本屬於少數的樣本類別中的樣本增加。 整合採樣 Ensemble sampling如我們所知,一些下採樣的方法可能會使我們丟失一些比較重要的資料點,但是Xu-Ying Liu, Jianxin Wu, and Zhi-Hua Zhou的論文Exploratory Undersampling for Class-Imbalance Learning中提出了EasyEnsemble和BalanceCascade的方法一定程度上解決了這個問題。在論文中,作者提到,EasyEnsemble的思想有一部分與Balanced Random Forests相似,但是EasyEnsemble使用了樣本來隨機訓練決策樹。 代價敏感學習 Cost-Sensitive Learning我們都知道比起將一個正常客戶誤判為不良貸款客戶,將一個不良貸款客戶誤判為正常客戶可能會給銀行帶來更大的損失;比起將非癌症病人誤判為癌症病人,將癌症病人誤判為非癌症病人可能會導致治療無法及時進行從而導致更嚴重的後果。於是就有了cost-sensitive learning這樣的思路——來解決這種樣本分類不均衡的問題。這部分可以參考Charles X. Ling, Victor S. Sheng的論文Cost-Sensitive Learning and the Class Imbalance Problem:  著作權聲明:本文是原創博文,請勿,違者必究。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.