【論文筆記】CUSBoost:基於聚類的提升下采樣的非平衡數據分類

原論文地址:CUSBoost: Cluster-based Under-sampling with Boosting for Imbalanced Classification

Abstract

普通的機器學習方法,對於非平衡數據分類,總是傾向於最大化佔比多的類別的分類準確率,而把佔比少的類別分類錯誤,但是,現實應用中,我們研究的問題,對於少數的類別卻更加感興趣。最近,處理非平衡數據分類問題的方法有:採樣方法,成本敏感的學習方法,以及集成學習的方法。這篇文章中,提出了一種新的基於聚類的欠採樣boosting方法,CUSBoost,它能夠有效地處理非平衡數據分類問題。RUSBoost(random under-sampling with AdaBoost) 和SMOTEBoost (synthetic minority over-sampling with AdaBoost) 算法,在我們提出的算法中作爲可選項。經過實驗,我們發現CUSBoost算法在處理非平衡數據上能夠達到state-of-art的表現,其表現優於一般的集成學習方法。

Introduction

處理非平衡類別問題的方法一般被分爲兩類:外部(對非平衡數據進行處理得到平衡的數據)、內部(通過降低非平衡類別數據的靈敏度來改變已有的學習算法)的方法。

而CUSBoost的處理方法是:首先把數據分開爲少數類別實例和多數類別實例,然後使用K-means算法對多數類別實例進行聚類處理,並且從每個聚類中選擇部分數據來組成平衡的數據。聚類的方法幫助我們在多數類別數據中選擇了差異性更大的數據(同一個聚類裏面的數據則選擇的相對較少),比起那些隨機採樣的方法(隨機丟棄多數類別的數據)。CUSBoost combines the sampling and boosting methods to form an efficient and effective algorithm for class imbalance learning.

Related work

Sun等人提出的處理非平衡的二分類問題的方法,首先將大多數類別數據隨機分組,每個組內的數據數量和少數類別的數據數量相近。然後由多數類每個組的數據加少數類數據進而組成平衡的數據樣本。

Chawla 等人提出一種過採樣方法SMOTE,對少數類別數據進行over-sample,不同之處在於,採樣的數據是由少數類別數據合成而來。它通過操作特徵空間而不是數據空間來合成少數類別的數據(使用KNN)。

Seiffert等人給出的結合Adaboost的隨機欠採樣方法RUSBoost,RUS減少多數類別的數據組成平衡數據(結合Adaboost)。

CUSBoost Algorithm

CUSBoost是聚類採樣和Adaboost方法的結合:
聚類採樣:把多數類數據和少數類數據分開,在多數類數據中,使用K-means算法將其分爲KK個聚類(KK採用超參數優化決定)。然後在每個聚類中,使用隨機地選擇50%的數據(這裏可以視具體問題進行調整)。使用選擇出來的數據和少數類數據一起組成新的平衡數據。

算法僞代碼:
這裏寫圖片描述

解釋一下:步驟三是每一次都實行一次欠採樣(對事先已經利用K-means方法得到的K個聚類),組成平衡的數據。

My views

本文提出的算法關鍵點在於基於聚類的欠採樣方法(K-means),然後就是結合Adaboost算法來得到最後的模型。文章後面也給出了實驗測試結果,有興趣的可以看一下,可以得到一下幾個結論:

  • 總體相比RUSBoostSMOTEBoost來說,該方法分類性能具有顯著優越的效果;
  • 正是基於聚類的採樣方法,導致瞭如果數據的特徵空間非常適合聚類的時候,該方法將表現地較好。否則,可能需要嘗試其他方法了;
  • 該算法結合了Adaboost,其實用其他算法模型來代替也不是不可以的,比如當前很火的Xgboost
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章