https://yq.aliyun.com/articles/93547?utm_content=m_22922

摘要: 這篇博客主要介紹處理不平衡數(shù)據(jù)的技巧,給出了七種適用于特定問題及數(shù)據(jù)集的方法,避免由于數(shù)據(jù)集不平衡而得到的一個(gè)假的好模型。另外作者也指出本文不是一個(gè)技術(shù)列表,建議讀者不局限于此、嘗試結(jié)合不同的方法設(shè)計(jì)出合適的模型。

更多深度文章,請(qǐng)關(guān)注:https://yq.aliyun.com/cloud

這篇博客主要介紹處理不平衡數(shù)據(jù)的技巧,那么什么是不平衡數(shù)據(jù)呢?比如說一位醫(yī)生做了一個(gè)病例對(duì)照研究,數(shù)據(jù)集由病例10人和對(duì)照990人組成,建立好一個(gè)邏輯回歸模型后,并對(duì)建立的模型進(jìn)行內(nèi)部驗(yàn)證,居然發(fā)現(xiàn)其正確率高達(dá)99%,然后把他興奮壞了,覺得可以將該成果發(fā)表到頂級(jí)期刊上,從此走上人生巔峰。然而,我們可以發(fā)現(xiàn),該模型不管怎么預(yù)測(cè),都能得到正常的結(jié)果,所謂的99%的正確率,原來是建立在1000個(gè)人中10個(gè)病例都發(fā)現(xiàn)不了的基礎(chǔ)上。從這個(gè)例子可以看出,當(dāng)遇到不平衡數(shù)據(jù)時(shí),以總體分類準(zhǔn)確率為學(xué)習(xí)目標(biāo)的傳統(tǒng)分類算法會(huì)過多地關(guān)注多數(shù)類,從而使得少數(shù)類樣本的分類性能下降。

介紹

不平衡數(shù)據(jù)廣泛存在于各個(gè)領(lǐng)域,但在二分類問題中尤其常見,表現(xiàn)為其中的一個(gè)類別所占的比例遠(yuǎn)遠(yuǎn)高于另外的一個(gè)類。比如:銀行欺詐檢測(cè)、市場(chǎng)營(yíng)銷、網(wǎng)絡(luò)入侵檢測(cè)等領(lǐng)域。

這些領(lǐng)域中的數(shù)據(jù)集有哪些共同點(diǎn)呢?可以發(fā)現(xiàn)在這些領(lǐng)域中使用的數(shù)據(jù)通常不到1%,但一旦發(fā)生就是一件“有趣”的事件(例如使用信用卡的欺詐者的違規(guī)交易,用戶點(diǎn)擊廣告或原本已損壞的服務(wù)器在掃描其網(wǎng)絡(luò))。然而,大多數(shù)機(jī)器學(xué)習(xí)算法對(duì)于不平衡數(shù)據(jù)集不能很好地工作。以下七種技術(shù)可以幫助我們訓(xùn)練分類器來檢測(cè)異常類。

2ae13c80b331928efad71567a7330c04252616b7

1. 使用正確的評(píng)估指標(biāo)

對(duì)使用不平衡數(shù)據(jù)生成的模型應(yīng)用不當(dāng)?shù)脑u(píng)估指標(biāo)是相當(dāng)危險(xiǎn)的。想象一下,模型訓(xùn)練數(shù)據(jù)如上圖所示,若使用精度來衡量模型的好壞,將所有測(cè)試樣本分類為“0”的模型將具有很好的準(zhǔn)確性(99.8%),但顯然這種模型不會(huì)為我們提供任何有價(jià)值的信息。

在這種情況下,可以應(yīng)用其他評(píng)估指標(biāo)替代精度指標(biāo),例如:

  • 準(zhǔn)確度/特異度:有多少個(gè)選定的實(shí)例相關(guān)。
  • 召回率/靈敏度:選擇了多少個(gè)相關(guān)實(shí)例。
  • F1評(píng)分:準(zhǔn)確度和召回率的調(diào)和平均數(shù)。
  • Matthews相關(guān)系數(shù)(MCC):觀察和預(yù)測(cè)的二元分類之間的相關(guān)系數(shù)。
  • ROC曲線下的面積(AUC):真陽性率與假陽性率之間的關(guān)系。

2. 重新采樣訓(xùn)練集

除了使用不同的評(píng)估標(biāo)準(zhǔn)外,還可以使用不同的數(shù)據(jù)集。有兩種方法使不平衡的數(shù)據(jù)集來建立一個(gè)平衡的數(shù)據(jù)集——欠采樣和過采樣。

2.1. 欠采樣

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

2.2. 過采樣

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

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

3. 以正確的方式使用K-fold交叉驗(yàn)證

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

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

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

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

f9a59c227cde6aabc6ddd5f9035956d2c0146e73

如果擁有大量數(shù)據(jù),這種方法是簡(jiǎn)單是可橫向擴(kuò)展的這是因?yàn)榭梢栽诓煌募汗?jié)點(diǎn)上訓(xùn)練和運(yùn)行模型。集合模型也趨于泛化,這使得該方法易于處理。

5. 用不同比例重新采樣

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

920fa684f3e3e1bd3ebeaaa48002906991eac111

6. 集群豐富

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

7. 設(shè)計(jì)自己的模型

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

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

76dfa88e5a25555eb589b82a0f23ecee900bc56a

結(jié)束語

本文不是一個(gè)排外的技術(shù)列表,而是處理不平衡數(shù)據(jù)的一些建議。沒有適合所有問題的最佳方法或模型,強(qiáng)烈建議嘗試不同的技術(shù)和模型來評(píng)估哪些方法最有效嘗試創(chuàng)造性地結(jié)合不同的方法。同樣值得注意的是,在不平衡類別發(fā)生的許多領(lǐng)域中,隨著“市場(chǎng)規(guī)則”不斷變化需要檢查過去的數(shù)據(jù)是否過時(shí)

推薦閱讀

作者信息

Ye Wu在營(yíng)銷和銷售預(yù)測(cè)方面具有會(huì)計(jì)和實(shí)踐經(jīng)驗(yàn)的背景在IE商學(xué)院攻讀業(yè)務(wù)分析與大數(shù)據(jù)碩士學(xué)位。

Rick Radewagen是一位有抱負(fù)的數(shù)據(jù)科學(xué)家,擁有計(jì)算機(jī)科學(xué)的背景在IE商學(xué)院攻讀業(yè)務(wù)分析與大數(shù)據(jù)碩士學(xué)位。

本文由北郵@愛可可-愛生活老師推薦,阿里云云棲社區(qū)組織翻譯。

文章原標(biāo)題《7 Techniques to Handle Imbalanced Data》,作者:Ye Wu, Rick Radewagen,譯者:海棠,審閱:6816816151

附件為原文的pdf

文章為簡(jiǎn)譯,更為詳細(xì)的內(nèi)容,請(qǐng)查看原文