自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

三招提升數(shù)據(jù)不平衡模型的性能(附python代碼)

大數(shù)據(jù)
針對數(shù)據(jù)不平衡問題有相應(yīng)的處理辦法,比如對多數(shù)樣本進行采樣使得其樣本數(shù)量級與少樣本數(shù)相近,或者是對少數(shù)樣本重復(fù)使用等。最近恰好在面試中遇到一個數(shù)據(jù)不平衡問題,這也是面試中經(jīng)常會出現(xiàn)的問題之一,現(xiàn)向讀者分享此次解決問題的心得。

對于深度學(xué)習(xí)而言,數(shù)據(jù)集非常重要,但在實際項目中,或多或少會碰見數(shù)據(jù)不平衡問題。什么是數(shù)據(jù)不平衡呢?舉例來說,現(xiàn)在有一個任務(wù)是判斷西瓜是否成熟,這是一個二分類問題——西瓜是生的還是熟的,該任務(wù)的數(shù)據(jù)集由兩部分?jǐn)?shù)據(jù)組成,成熟西瓜與生西瓜,假設(shè)生西瓜的樣本數(shù)量遠(yuǎn)遠(yuǎn)大于成熟西瓜樣本的數(shù)量,針對這樣的數(shù)據(jù)集訓(xùn)練出來的算法“偏向”于識別新樣本為生西瓜,存心讓你買不到甜的西瓜以解夏天之苦,這就是一個數(shù)據(jù)不平衡問題。

針對數(shù)據(jù)不平衡問題有相應(yīng)的處理辦法,比如對多數(shù)樣本進行采樣使得其樣本數(shù)量級與少樣本數(shù)相近,或者是對少數(shù)樣本重復(fù)使用等。最近恰好在面試中遇到一個數(shù)據(jù)不平衡問題,這也是面試中經(jīng)常會出現(xiàn)的問題之一,現(xiàn)向讀者分享此次解決問題的心得。

數(shù)據(jù)集

訓(xùn)練數(shù)據(jù)中有三個標(biāo)簽,分別標(biāo)記為[1、2、3],這意味著該問題是一個多分類問題。訓(xùn)練數(shù)據(jù)集有17個特征以及38829個獨立數(shù)據(jù)點。而在測試數(shù)據(jù)中,有16個沒有標(biāo)簽的特征和16641個數(shù)據(jù)點。該訓(xùn)練數(shù)據(jù)集非常不平衡,大部分?jǐn)?shù)據(jù)是1類(95%),而2類和3類分別有3.0%和0.87%的數(shù)據(jù),如下圖所示。

 

算法

經(jīng)過初步觀察,決定采用隨機森林(RF)算法,因為它優(yōu)于支持向量機、Xgboost以及LightGBM算法。在這個項目中選擇RF還有幾個原因:

  1. 機森林對過擬合具有很強的魯棒性;
  2. 參數(shù)化仍然非常直觀;
  3. 在這個項目中,有許多成功的用例將隨機森林算法用于高度不平衡的數(shù)據(jù)集;
  4. 個人有先前的算法實施經(jīng)驗;

為了找到***參數(shù),使用scikit-sklearn實現(xiàn)的GridSearchCV對指定的參數(shù)值執(zhí)行網(wǎng)格搜索,更多細(xì)節(jié)可以在本人的Github上找到。

為了處理數(shù)據(jù)不平衡問題,使用了以下三種技術(shù):

A.使用集成交叉驗證(CV):

在這個項目中,使用交叉驗證來驗證模型的魯棒性。整個數(shù)據(jù)集被分成五個子集。在每個交叉驗證中,使用其中的四個子集用于訓(xùn)練,剩余的子集用于驗證模型,此外模型還對測試數(shù)據(jù)進行了預(yù)測。在交叉驗證結(jié)束時,會得到五個測試預(yù)測概率。***,對所有類別的概率取平均值。模型的訓(xùn)練表現(xiàn)穩(wěn)定,每個交叉驗證上具有穩(wěn)定的召回率和f1分?jǐn)?shù)。這項技術(shù)也幫助我在Kaggle比賽中取得了很好的成績(前1%)。以下部分代碼片段顯示了集成交叉驗證的實現(xiàn):

 

B.設(shè)置類別權(quán)重/重要性:

代價敏感學(xué)習(xí)是使隨機森林更適合從非常不平衡的數(shù)據(jù)中學(xué)習(xí)的方法之一。隨機森林有傾向于偏向大多數(shù)類別。因此,對少數(shù)群體錯誤分類施加昂貴的懲罰可能是有作用的。由于這種技術(shù)可以改善模型性能,所以我給少數(shù)群體分配了很高的權(quán)重(即更高的錯誤分類成本)。然后將類別權(quán)重合并到隨機森林算法中。我根據(jù)類別1中數(shù)據(jù)集的數(shù)量與其它數(shù)據(jù)集的數(shù)量之間的比率來確定類別權(quán)重。例如,類別1和類別3數(shù)據(jù)集的數(shù)目之間的比率約為110,而類別1和類別2的比例約為26。現(xiàn)在我稍微對數(shù)量進行修改以改善模型的性能,以下代碼片段顯示了不同類權(quán)重的實現(xiàn):

 

C.過大預(yù)測標(biāo)簽而不是過小預(yù)測(Over-Predict a Label than Under-Predict):

這項技術(shù)是可選的,通過實踐發(fā)現(xiàn),這種方法對提高少數(shù)類別的表現(xiàn)非常有效。簡而言之,如果將模型錯誤分類為類別3,則該技術(shù)能***限度地懲罰該模型,對于類別2和類別1懲罰力度稍差一些。 為了實施該方法,我改變了每個類別的概率閾值,將類別3、類別2和類別1的概率設(shè)置為遞增順序(即,P3= 0.25,P2= 0.35,P1= 0.50),以便模型被迫過度預(yù)測類別。該算法的詳細(xì)實現(xiàn)可以在Github上找到。

最終結(jié)果

以下結(jié)果表明,上述三種技術(shù)如何幫助改善模型性能:

1.使用集成交叉驗證的結(jié)果:

 

2.使用集成交叉驗證+類別權(quán)重的結(jié)果:

 

3.使用集成交叉驗證+類別權(quán)重+過大預(yù)測標(biāo)簽的結(jié)果:

 

結(jié)論

由于在實施過大預(yù)測技術(shù)方面的經(jīng)驗很少,因此最初的時候處理起來非常棘手。但是,研究該問題有助于提升我解決問題的能力。對于每個任務(wù)而言,起初可能確實是陌生的,這個時候不要害怕,一次次嘗試就好。由于時間的限制(48小時),無法將精力分散于模型的微調(diào)以及特征工程,存在改進的地方還有很多,比如刪除不必要的功能并添加一些額外功能。此外,也嘗試過LightGBM和XgBoost算法,但在實踐過程中發(fā)現(xiàn),隨機森林的效果優(yōu)于這兩個算法。在后面的研究中,可以進一步嘗試一些其他算法,比如神經(jīng)網(wǎng)絡(luò)、稀疏編碼等。

責(zé)任編輯:未麗燕 來源: 網(wǎng)絡(luò)大數(shù)據(jù)
相關(guān)推薦

2021-01-04 10:40:37

Python不平衡數(shù)據(jù)機器學(xué)習(xí)

2018-09-11 13:47:35

數(shù)據(jù)不平衡數(shù)據(jù)分布數(shù)據(jù)集

2016-12-13 11:48:05

數(shù)據(jù)處理不平衡數(shù)據(jù)

2023-09-29 22:51:22

數(shù)據(jù)不平衡Python機器學(xué)習(xí)

2018-04-20 11:33:22

不平衡數(shù)據(jù)數(shù)據(jù)集模型

2023-12-26 15:32:25

不平衡數(shù)據(jù)過采樣機器學(xué)習(xí)

2019-02-25 08:35:22

機器學(xué)習(xí)數(shù)據(jù)模型

2017-06-16 22:14:45

機器學(xué)習(xí)數(shù)據(jù)不平衡

2017-03-28 09:40:23

機器學(xué)習(xí)數(shù)據(jù)不平衡

2021-06-06 22:41:30

人才技術(shù)預(yù)測不平衡

2024-10-18 07:10:43

2020-10-06 10:44:16

機器學(xué)習(xí)不平衡數(shù)據(jù)算法

2020-09-21 09:02:56

AI機器學(xué)習(xí)類不平衡

2025-01-20 09:00:00

2022-05-06 09:48:56

機器學(xué)習(xí)樣本不平衡

2019-03-27 08:51:38

機器學(xué)習(xí)類失衡算法

2016-09-07 13:26:25

R語言不平衡數(shù)據(jù)

2017-03-20 09:25:10

機器學(xué)習(xí)采樣數(shù)據(jù)合成

2018-05-14 10:43:53

平衡數(shù)據(jù)數(shù)據(jù)分析Python

2019-10-28 13:57:54

Windows 10Windows電腦性能
點贊
收藏

51CTO技術(shù)棧公眾號