機(jī)器學(xué)習(xí)中的樣本不平衡問題

在機(jī)器學(xué)習(xí)任務(wù)中共苛,我們經(jīng)常會遇到這種困擾:數(shù)據(jù)不平衡問題。

數(shù)據(jù)不平衡問題主要存在于有監(jiān)督機(jī)器學(xué)習(xí)任務(wù)中蜓萄。當(dāng)遇到不平衡數(shù)據(jù)時隅茎,以總體分類準(zhǔn)確率為學(xué)習(xí)目標(biāo)的傳統(tǒng)分類算法會過多地關(guān)注多數(shù)類,從而使得少數(shù)類樣本的分類性能下降嫉沽。絕大多數(shù)常見的機(jī)器學(xué)習(xí)算法對于不平衡數(shù)據(jù)集都不能很好地工作辟犀。

本文介紹幾種有效的解決數(shù)據(jù)不平衡情況下有效訓(xùn)練有監(jiān)督算法的思路:

1、重新采樣訓(xùn)練集

可以使用不同的數(shù)據(jù)集绸硕。有兩種方法使不平衡的數(shù)據(jù)集來建立一個平衡的數(shù)據(jù)集——欠采樣和過采樣踪蹬。

1.1. 欠采樣

欠采樣是通過減少豐富類的大小來平衡數(shù)據(jù)集,當(dāng)數(shù)據(jù)量足夠時就該使用此方法臣咖。通過保存所有稀有類樣本跃捣,并在豐富類別中隨機(jī)選擇與稀有類別樣本相等數(shù)量的樣本,可以檢索平衡的新數(shù)據(jù)集以進(jìn)一步建模夺蛇。

1.2. 過采樣

相反疚漆,當(dāng)數(shù)據(jù)量不足時就應(yīng)該使用過采樣,它嘗試通過增加稀有樣本的數(shù)量來平衡數(shù)據(jù)集刁赦,而不是去除豐富類別的樣本的數(shù)量娶聘。通過使用重復(fù)、自舉或合成少數(shù)類過采樣等方法(SMOTE)來生成新的稀有樣品甚脉。

注意到欠采樣和過采樣這兩種方法相比而言丸升,都沒有絕對的優(yōu)勢。這兩種方法的應(yīng)用取決于它適用的用例和數(shù)據(jù)集本身牺氨。另外將過采樣和欠采樣結(jié)合起來使用也是成功的狡耻。

2墩剖、使用K-fold交叉驗證

值得注意的是,使用過采樣方法來解決不平衡問題時應(yīng)適當(dāng)?shù)貞?yīng)用交叉驗證夷狰。這是因為過采樣會觀察到罕見的樣本岭皂,并根據(jù)分布函數(shù)應(yīng)用自舉生成新的隨機(jī)數(shù)據(jù),如果在過采樣之后應(yīng)用交叉驗證沼头,那么我們所做的就是將我們的模型過擬合于一個特定的人工引導(dǎo)結(jié)果爷绘。這就是為什么在過度采樣數(shù)據(jù)之前應(yīng)該始終進(jìn)行交叉驗證,就像實現(xiàn)特征選擇一樣进倍。只有重復(fù)采樣數(shù)據(jù)可以將隨機(jī)性引入到數(shù)據(jù)集中土至,以確保不會出現(xiàn)過擬合問題。

K-fold交叉驗證就是把原始數(shù)據(jù)隨機(jī)分成K個部分猾昆,在這K個部分中選擇一個作為測試數(shù)據(jù)陶因,剩余的K-1個作為訓(xùn)練數(shù)據(jù)。交叉驗證的過程實際上是將實驗重復(fù)做K次毡庆,每次實驗都從K個部分中選擇一個不同的部分作為測試數(shù)據(jù),剩余的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)進(jìn)行實驗烙如,最后把得到的K個實驗結(jié)果平均么抗。

3、轉(zhuǎn)化為一分類問題

對于二分類問題亚铁,如果正負(fù)樣本分布比例極不平衡蝇刀,我們可以換一個完全不同的角度來看待問題:把它看做一分類(One Class Learning)或異常檢測(Novelty Detection)問題。這類方法的重點不在于捕捉類間的差別徘溢,而是為其中一類進(jìn)行建模吞琐,經(jīng)典的工作包括One-class SVM等,如下圖所示:

One Class SVM 是指你的訓(xùn)練數(shù)據(jù)只有一類正(或者負(fù))樣本的數(shù)據(jù)然爆, 而沒有另外的一類站粟。在這時,你需要學(xué)習(xí)的實際上你訓(xùn)練數(shù)據(jù)的邊界曾雕。而這時不能使用最大化軟邊緣了奴烙,因為你沒有兩類的數(shù)據(jù)。 所以呢剖张,在這邊文章中切诀,“Estimating the support of a high-dimensional distribution”, Sch?lkopf 假設(shè)最好的邊緣要遠(yuǎn)離特征空間中的原點搔弄。左邊是在原始空間中的邊界幅虑,可以看到有很多的邊界都符合要求,但是比較靠譜的是找一個比較緊的邊界(紅色的)顾犹。這個目標(biāo)轉(zhuǎn)換到特征空間就是找一個離原點比較遠(yuǎn)的邊界倒庵,同樣是紅色的直線褒墨。當(dāng)然這些約束條件都是人為加上去的,你可以按照你自己的需要采取相應(yīng)的約束條件哄芜。比如讓你data 的中心離原點最遠(yuǎn)貌亭。

說明:對于正負(fù)樣本極不均勻的問題,使用異常檢測认臊,或者一分類問題圃庭,也是一個思路。

4失晴、組合不同的重采樣數(shù)據(jù)集

成功泛化模型的最簡單方法是使用更多的數(shù)據(jù)剧腻,問題是像邏輯回歸或隨機(jī)森林這樣開箱即用的分類器,傾向于通過舍去稀有類來泛化模型涂屁。一個簡單的最佳實踐是建立n個模型书在,每個模型使用稀有類別的所有樣本和豐富類別的n個不同樣本。假設(shè)想要合并10個模型拆又,那么將保留例如1000例稀有類別儒旬,并隨機(jī)抽取10000例豐富類別。然后帖族,只需將10000個案例分成10塊栈源,并訓(xùn)練10個不同的模型。

如果擁有大量數(shù)據(jù)竖般,這種方法是簡單并且是可橫向擴(kuò)展的甚垦,這是因為可以在不同的集群節(jié)點上訓(xùn)練和運行模型。集合模型也趨于泛化涣雕,這使得該方法易于處理艰亮。

5、用不同比例重新采樣

方法4 可以很好地將稀有類別和豐富類別之間的比例進(jìn)行微調(diào)挣郭,最好的比例在很大程度上取決于所使用的數(shù)據(jù)和模型迄埃。但是,不是在整體中以相同的比例訓(xùn)練所有模型兑障,所以值得嘗試合并不同的比例调俘。如果10個模型被訓(xùn)練,有一個模型比例為1:1(稀有:豐富)和另一個1:3甚至是2:1的模型都是有意義的旺垒。一個類別獲得的權(quán)重依賴于使用的模型彩库。

6、多模型Bagging

方法5雖然能夠選出最好的樣本數(shù)據(jù)比例先蒋。但是它的魯棒性不能夠保證:它的魯棒性取決于測試集樣本的選取骇钦。

為了解決上述方法的缺陷,增加模型魯棒性竞漾。為此眯搭,我本人在隨機(jī)森林算法思想的啟發(fā)下窥翩,想出了在上述方法的基礎(chǔ)上,將不同比例下訓(xùn)練出來的模型進(jìn)行** 多模型Bagging** 操作鳞仙,具體的步驟如下:

1. 對兩類樣本選取 N 組不同比例的數(shù)據(jù)進(jìn)行訓(xùn)練并測試寇蚊,得出模型預(yù)測的準(zhǔn)確率:

P={ Pi | i=1,2,...N }

2. 對上述各模型的準(zhǔn)確率進(jìn)行歸一化處理,得到新的權(quán)重分布:

Ω={ ωi | i=1,2,...N }

其中:

3. 按權(quán)重分布 Ω 組合多個模型棍好,作為最終的訓(xùn)練器:

● 對于分類任務(wù):

● 對于回歸任務(wù):

7仗岸、集群豐富類

Sergey Quora提出了一種優(yōu)雅的方法,他建議不要依賴隨機(jī)樣本來覆蓋訓(xùn)練樣本的種類借笙,而是將r個群體中豐富類別進(jìn)行聚類扒怖,其中r為r中的例數(shù)。每個組只保留集群中心(medoid)业稼。然后盗痒,基于稀有類和僅保留的類別對該模型進(jìn)行訓(xùn)練。

7.1. 對豐富類進(jìn)行聚類操作

首先低散,我們可以對具有大量樣本的豐富類進(jìn)行聚類操作俯邓。假設(shè)我們使用的方法是 K-Means聚類算法 。此時熔号,我們可以選擇K值為稀有類中的數(shù)據(jù)樣本的個數(shù)稽鞭,并將聚類后的中心點以及相應(yīng)的聚類中心當(dāng)做富類樣本的代表樣例,類標(biāo)與富類類標(biāo)一致跨嘉。

7.2. 聚類后的樣本進(jìn)行有監(jiān)督學(xué)習(xí)

經(jīng)過上述步驟的聚類操作川慌,我們對富類訓(xùn)練樣本進(jìn)行了篩選吃嘿,接下來我們就可以將相等樣本數(shù)的K個正負(fù)樣本進(jìn)行有監(jiān)督訓(xùn)練祠乃。如下圖所示:

8、設(shè)計適用于不平衡數(shù)據(jù)集的模型

所有之前的方法都集中在數(shù)據(jù)上兑燥,并將模型保持為固定的組件亮瓷。但事實上,如果設(shè)計的模型適用于不平衡數(shù)據(jù)降瞳,則不需要重新采樣數(shù)據(jù)嘱支,著名的XGBoost已經(jīng)是一個很好的起點,因此設(shè)計一個適用于不平衡數(shù)據(jù)集的模型也是很有意義的挣饥。

通過設(shè)計一個代價函數(shù)來懲罰稀有類別的錯誤分類而不是分類豐富類別除师,可以設(shè)計出許多自然泛化為稀有類別的模型。例如扔枫,調(diào)整SVM以懲罰稀有類別的錯誤分類汛聚。

作者:NLP小學(xué)生

鏈接:http://www.reibang.com/p/71eea3555dbf

來源:簡書

簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處短荐。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末倚舀,一起剝皮案震驚了整個濱河市叹哭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痕貌,老刑警劉巖风罩,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異舵稠,居然都是意外死亡超升,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門柱查,熙熙樓的掌柜王于貴愁眉苦臉地迎上來廓俭,“玉大人,你說我怎么就攤上這事唉工⊙衅梗” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵淋硝,是天一觀的道長雹熬。 經(jīng)常有香客問我,道長谣膳,這世上最難降的妖魔是什么竿报? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮继谚,結(jié)果婚禮上烈菌,老公的妹妹穿的比我還像新娘。我一直安慰自己花履,他們只是感情好芽世,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诡壁,像睡著了一般济瓢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妹卿,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天旺矾,我揣著相機(jī)與錄音,去河邊找鬼夺克。 笑死箕宙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铺纽。 我是一名探鬼主播柬帕,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了雕崩?” 一聲冷哼從身側(cè)響起魁索,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盼铁,沒想到半個月后粗蔚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡饶火,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年鹏控,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肤寝。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡当辐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鲤看,到底是詐尸還是另有隱情缘揪,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布义桂,位于F島的核電站找筝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏慷吊。R本人自食惡果不足惜袖裕,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溉瓶。 院中可真熱鬧急鳄,春花似錦、人聲如沸堰酿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胞锰。三九已至灾锯,卻和暖如春兢榨,著一層夾襖步出監(jiān)牢的瞬間嗅榕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工吵聪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留凌那,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓吟逝,卻偏偏與公主長得像帽蝶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子块攒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容