精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Python處理不平衡數據集

開發 后端
所謂的數據不平衡(imbalanced data)是指數據集中各個類別的數量分布不均衡;不平衡數據在現實任務中十分的常見

[[373489]]

1. 什么是數據不平衡

所謂的數據不平衡(imbalanced data)是指數據集中各個類別的數量分布不均衡;不平衡數據在現實任務中十分的常見。如

  •  信用卡欺詐數據:99%都是正常的數據, 1%是欺詐數據
  •  貸款逾期數據

不平衡數據一般是由于數據產生的原因導致的,類別少的樣本通常是發生的頻率低,需要很長的周期進行采集。

在機器學習任務(如分類問題)中,不平衡數據會導致訓練的模型預測的結果會偏向于樣本數量多的類別,這個時候除了要選擇合適的評估指標外,想要提升模型的性能,就要對數據和模型做一些預處理。

處理數據不平衡的主要方法:

  •  欠采樣
  •  過采樣
  •  綜合采樣
  •  模型集成
  •  調整類別權重或者樣本權重

2. 數據不平衡處理方法

imbalanced-learn庫提供了許多不平衡數據處理的方法,本文的例子都以imbalanced-learn庫來實現。

  1. pip install -U imbalanced-learn  

https://github.com/scikit-learn-contrib/imbalanced-learn

本文例子的數據來自進行中的比賽山東省第二屆數據應用創新創業大賽-日照分賽場-公積金貸款逾期預測

先來看下數據 

  1. import pandas as pd  
  2. train_data = './data/train.csv'  
  3. test_data = './data/test.csv'  
  4. train_df = pd.read_csv(train_data)  
  5. test_df = pd.read_csv(test_data)  
  6. print(train_df.groupby(['label']).size())  
  7. # label為是否違約, 1為違約, 0為非違約  
  8. #     label  
  9. # 0    37243  
  10. # 1     2757 

2.1 欠采樣

所謂欠采樣,就是將數量多類別(記為majority)的樣本進行抽樣,使之數量與數量少的類別(minority)的數量相當,以此達到數量的平衡。

由于欠采樣是丟失了一部分數據,不可避免的使得數量多類別樣本的分布發生了變化(方差變大)。好的欠采樣策略應該盡可能保持原有數據分布。

欠采樣是刪除majority的樣本,那哪些樣本可以刪除呢?

  •  一種是overlapping的數據,就是多余的數據
  •  一種是干擾的數據,干擾minority的分布

基于此,有兩種思路來欠采樣

  • 邊界相鄰匹配,考慮在近鄰空間內刪除majority樣本,方法如TomekLinks, NearMiss

下面這張圖,展示6NN(6個最近鄰居)

這里重點講下TomekLinks, TomekLinks方法簡單的說:對每一個minority樣本找1NN(最近的鄰居),如果最近的鄰居是majority, 就形成一個tome-links,該方法人為這個majority是干擾的,將它刪除。

 

  1. from imblearn.under_sampling import TomekLinks  
  2. X_train = train_df.drop(['id', 'type'], axis=1 
  3. y = train_df['label']  
  4. tl = TomekLinks()  
  5. X_us, y_us = tl.fit_sample(X_train, y)  
  6. print(X_us.groupby(['label']).size())  
  7. # label  
  8. # 0    36069  
  9. # 1     2757 

從上可知, 有1174個tomek-link被刪除,好像刪除還不夠多,可以測試下是否對分類結果有幫助。需要注意的因為需要計算最近鄰,所以樣本屬性必須數值屬性,或者可以轉化為數值屬性。

  •  聚類

          這類方法通過多個聚類,把原始樣本劃分成多個聚類簇,然后用每個聚類簇的中心來代替這個聚類簇的特性,完成采樣的目的。可知,這種采樣的樣本不是來自原始樣本集,而是聚類生成              的。   

  1. from imblearn.under_sampling import ClusterCentroids   
  2.     cc = ClusterCentroids(random_state=42 
  3.     X_res, y_res = cc.fit_resample(X_train, y)  
  4.     X_res.groupby(['label']).size()  
  5.     # label  
  6.     # 0    2757  
  7.     # 1    2757 

im-balance提供的欠采樣的方法如下:

  •  Random majority under-sampling with replacement
  •  Extraction of majority-minority Tomek links
  •  Under-sampling with Cluster Centroids
  •  NearMiss-(1 & 2 & 3)
  •  Condensed Nearest Neighbour
  •  One-Sided Selection
  •  Neighboorhood Cleaning Rule
  •  Edited Nearest Neighbours
  •  Instance Hardness Threshold
  •  Repeated Edited Nearest Neighbours
  •  AllKNN

2.2 過采樣

所謂過采樣,就是將數量少的類別(minority)的樣本進行copy,使之數量與數量多的類別(majortity)的數量相當,以此達到數量的平衡。由于復制了多份minoruty樣本,過采樣會改變minority方差。

過采樣一種簡單的方式是隨機copy minority的樣本;另外一種是根據現有樣本生成人造樣本。這里介紹人造樣本的經典算法SMOTE(Synthetic Minority Over-sampling Technique)。

SMOTE基于minority樣本相似的特征空間構造新的人工樣本。步驟如下:

  •  選擇一個minority樣本,計算其KNN鄰居
  •  在K個鄰居中,隨機選擇一個近鄰
  •  修改某一個特征,偏移一定的大小:偏移的大小為該minority樣本與該近鄰差距乘以一個小的隨機比率(0, 1), 就此生成新樣本

 

  1. from imblearn.over_sampling import SMOTE  
  2. smote = SMOTE(k_neighbors=5random_state=42 
  3. X_res, y_res = smote.fit_resample(X_train, y)  
  4. X_res.groupby(['label']).size()  
  5. # label  
  6. # 0    37243  
  7. # 1    37243 

對于SMOTE方法,對每一個minority都會構造新樣本。但是并不總是這樣的,考慮下面A,B,C三個點。從數據分布來看,C點很可能是一個異常點(Noise),B點是正常分布的點(SAFE),而A點分布在邊界位置(DANGER);直觀上,對于C點我們不應該去構造新樣本,對B點,構造新樣本不會豐富minority類別的分布。只有A點,如果構造新樣本能夠使得A點從(DANGER)到(SAFE),加強minority類別的分類邊界。這個就是Borderline-SMOTE

 

  1. from imblearn.over_sampling import BorderlineSMOTE  
  2. bsmote = BorderlineSMOTE(k_neighbors=5random_state=42 
  3. X_res, y_res = bsmote.fit_resample(X_train, y)  
  4. X_res.groupby(['label']).size()  
  5. # label  
  6. # 0    37243  
  7. # 1    37243 

ADASYN方法從保持樣本分布的角度來確定生成數據,生成數據的方式和SMOTE是一樣的,不同在于每個minortiy樣本生成樣本的數量不同。

  •  先確定要生成樣本的數量 beta為[0, 1]   

  •  對每個每個minortiy樣本,確定有它生成樣本的比例。先找出K最近鄰,計算K最近鄰中屬于majority的樣本比例(即分子),Z是歸一化因子,保證所有的minortiry的比例和為1,可以認為是所有分子的和。  

  •  計算每個minortiy生成新樣本的數量

  •  按照SMOTE方式生成樣本 
  1. from imblearn.over_sampling import ADASYN   
  2. adasyn = ADASYN(n_neighbors=5random_state=42 
  3. X_res, y_res = adasyn.fit_resample(X_train, y)  
  4. X_res.groupby(['label']).size()  
  5. # label  
  6. # 0    37243  
  7. # 1    36690 

im-balance提供的過采樣的方法如下(包括SMOTE算法的變種):

  •  Random minority over-sampling with replacement
  •  SMOTE - Synthetic Minority Over-sampling Technique
  •  SMOTENC - SMOTE for Nominal Continuous
  •  bSMOTE(1 & 2) - Borderline SMOTE of types 1 and 2
  •  SVM SMOTE - Support Vectors SMOTE
  •  ADASYN - Adaptive synthetic sampling approach for imbalanced learning
  •  KMeans-SMOTE
  •  ROSE - Random OverSampling Examples

2.3 綜合采樣

過采樣是針對minority樣本,欠采樣是針對majority樣本;而綜合采樣是既對minority樣本,又對majority樣本,同時進行操作的方法。主要有SMOTE+Tomek-links和SMOTE+Edited Nearest Neighbours。

綜合采樣的方法,是先進行過采樣,在進行欠采樣。 

  1. from imblearn.combine import SMOTETomek  
  2. smote_tomek = SMOTETomek(random_state=0 
  3. X_res, y_res = smote_tomek.fit_sample(X_train, y)  
  4. X_res.groupby(['label']).size()  
  5. # label  
  6. # 0    36260  
  7. # 1    36260 

2.4 模型集成

這里的模型集成主要體現在數據上,即用眾多平衡的數據集(majortiry的樣本進行欠采樣加上minority樣本)訓練多個模型,然后進行集成。imblearn.ensemble提供幾種常見的模型集成算法,如BalancedRandomForestClassifier 

  1. from imblearn.ensemble import BalancedRandomForestClassifier  
  2. from sklearn.datasets import make_classification  
  3. X, y = make_classification(n_samples=1000n_classes=3 
  4.                            n_informative=4weights=[0.2, 0.3, 0.5],  
  5.                            random_state=0 
  6. clf = BalancedRandomForestClassifier(max_depth=2random_state=0 
  7. clf.fit(X, y)    
  8. print(clf.feature_importances_)    
  9. print(clf.predict([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  
  10.                     0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])) 

im-balance提供的模型集成的方法如下

  •  Easy Ensemble classifier
  •  Balanced Random Forest
  •  Balanced Bagging
  •  RUSBoost

2.5 調整類別權重或者樣本權重

對于很多用梯度下降方法來學習(使得某個損失Loss最小)的機器學習的方法,可以通過調整類別權重或樣本權重的方式,來一定程度上平衡不平衡數據。如gbdt模型lightgbm 中 class_weight 

  1. import lightgbm as lgb  
  2. clf = lgb.LGBMRegressor(num_leaves=31,   
  3.                         min_child_samplesnp.random.randint(20,25),  
  4.                         max_depth=25 
  5.                         learning_rate=0.1,   
  6.                         class_weight={0:1, 1:10},  
  7.                         n_estimators=500,   
  8.                         n_jobs=30

3. 總結

本文分享了常見的幾種處理不平衡數據集的方法,并且提供imbalanced-learn的簡單例子。總結如下:

  •  欠采樣: 減少majoritry樣本
  •  過采樣:增加minority樣本
  •  綜合采樣:先過采樣,在欠采樣
  •  模型集成:制造平衡數據(majoritry樣本欠采樣+minority樣本),多次不同的欠采樣,訓練不同的模型,然后融合
  •  不管是欠采樣和過采樣,都一定程度的改變了原始數據的分布,可能造成模型過擬合。需要去嘗試哪種方法,符合實際的數據分布。當然不一定有效果,去勇敢嘗試吧 just do it! 

 

責任編輯:龐桂玉 來源: Python中文社區 (ID:python-china)
相關推薦

2016-12-13 11:48:05

數據處理不平衡數據

2023-09-29 22:51:22

數據不平衡Python機器學習

2018-04-20 11:33:22

不平衡數據數據集模型

2019-02-25 08:35:22

機器學習數據模型

2018-09-11 13:47:35

數據不平衡數據分布數據集

2024-10-18 07:10:43

2023-12-26 15:32:25

不平衡數據過采樣機器學習

2016-09-07 13:26:25

R語言不平衡數據

2020-10-06 10:44:16

機器學習不平衡數據算法

2017-03-28 09:40:23

機器學習數據不平衡

2018-06-11 16:20:22

數據不平衡數據集算法

2019-03-27 08:51:38

機器學習類失衡算法

2017-06-16 22:14:45

機器學習數據不平衡

2021-06-06 22:41:30

人才技術預測不平衡

2022-05-06 09:48:56

機器學習樣本不平衡

2017-03-20 09:25:10

機器學習采樣數據合成

2020-09-21 09:02:56

AI機器學習類不平衡

2025-01-20 09:00:00

2024-04-01 08:00:00

2015-01-22 10:13:33

App StoreApp審核
點贊
收藏

51CTO技術棧公眾號

制服丨自拍丨欧美丨动漫丨| 国产欧美精品一区二区三区四区| 亚洲日本va午夜在线影院| 色综合色综合久久综合频道88| 久久99影院| 欧美一区二区三区爽爽爽| 成人爱爱网址| 国产1区2区3区精品美女| 日韩中文字幕精品| 熟女人妇 成熟妇女系列视频| 国内爆初菊对白视频| 99国产**精品****| 在线亚洲免费视频| 久久免费一区| 中文字幕你懂的| 最新国产一区| 色激情天天射综合网| 精品视频第一区| 国产成人自拍视频在线| 林ゆな中文字幕一区二区| 一区二区三区波多野结衣在线观看| 国产精品视频精品| 永久免费av无码网站性色av| 日韩电影网站| 久久久久久久精| 国产mv久久久| 我不卡一区二区| 韩国精品一区| 一本久道久久综合狠狠爱| 一本色道久久综合亚洲精品高清| 久久高清免费| 久久精品一区二区三区不卡牛牛| 91在线视频一区| 国产一卡二卡三卡四卡| 2024短剧网剧在线观看| 欧洲在线视频| 国产精品538一区二区在线| 久久影视电视剧免费网站| 粉色视频免费看| 成人免费看片| 懂色av一区二区在线播放| 国产精品人成电影在线观看| 亚洲综合日韩在线| 欧美日韩亚洲综合| 9191久久久久久久久久久| 欧美日韩一区二区三区在线视频 | xxxxxx在线观看| 国产又黄又粗又猛又爽| 亚洲色图网站| 精品国产亚洲在线| 女人和拘做爰正片视频| 你懂的在线网址| 日韩高清不卡一区| 日韩一区二区三区在线播放| 国产人妻大战黑人20p| 一区在线影院| 一区二区三区波多野结衣在线观看| 亚洲自拍偷拍二区| 三级视频网站在线观看| 超碰人人干人人| 天堂av一区二区三区在线播放| 精品日韩美女的视频高清| 欧美色图亚洲自拍| 日韩私人影院| 国产主播一区二区三区| 韩国精品久久久999| 韩国视频一区二区| 日韩专区在线观看| 97国产真实伦对白精彩视频8| 欧美老熟妇乱大交xxxxx| 亚洲电影观看| 亚洲国产成人在线| 99精彩视频在线观看免费| 中文字幕av影院| 中文在线日韩| 欧美多人乱p欧美4p久久| 麻豆91精品91久久久| 久久av导航| 在线视频日本亚洲性| 亚洲自拍偷拍精品| 欧美人妖在线观看| 在线播放中文字幕一区| 波多野结衣乳巨码无在线| 黄色免费在线网站| 国产亚洲视频系列| 国产九区一区在线| 国产手机视频在线| 人人超碰91尤物精品国产| 久久久久久亚洲精品| 国产视频精品免费| 亚洲精品亚洲人成在线| 精品国产污网站| 日韩精品一区二区三区高清免费| 国产精品中文| 欧美日韩五月天| 久久黄色一级视频| 日韩精品一页| 欧美日韩另类一区| 色多多视频在线播放| 伊人色综合一区二区三区影院视频| 色激情天天射综合网| 99久久99精品| 精品久久99| 在线观看成人免费视频| 日本77777| www.一区| 欧美人xxxx| 中国xxxx性xxxx产国| 欧美丝袜一区| 在线视频欧美日韩| 国产一级片久久| 国产精品vip| 欧美xxxx做受欧美.88| 日韩在线一卡二卡| 亚洲最黄网站| 亚洲专区在线视频| 大地资源中文在线观看免费版| 久久综合狠狠综合| 久久久久成人精品免费播放动漫| 中文日本在线观看| 国产精品久久久久久久久久免费看| 日本一区视频在线观看免费| 青青草免费在线视频| 中文字幕一区二区三| 国模吧无码一区二区三区| 成人在线视频国产| 亚洲天堂男人的天堂| 天天干天天舔天天操| 亚洲国产三级| 欧美在线激情视频| 亚洲av中文无码乱人伦在线视色| 国产精品99久久久久久似苏梦涵| 亚欧精品在线| 国产美女福利在线| 在线观看网站黄不卡| 中文字幕av观看| 狠狠操综合网| 萌白酱国产一区二区| 这里只有精品免费视频| 国内精品伊人久久久久av影院| 日本不卡免费新一二三区| 成人性生交大片免费看午夜 | 99re6热在线精品视频| 男女av一区三区二区色多| 日韩美女免费线视频| 视频污在线观看| 久久久噜噜噜久久人人看 | 国产在线xxx| 色综合久久中文综合久久牛| av在线网址导航| 欧美色图激情小说| 国产精品国产亚洲伊人久久| 国产美女主播在线观看| 国产精品色婷婷久久58| 日韩精品免费一区| 韩漫成人漫画| 亚洲美女久久久| frxxee中国xxx麻豆hd| 蜜臀av性久久久久蜜臀aⅴ| 超碰97网站| 色帝国亚洲欧美在线| 色呦呦网站一区| 右手影院亚洲欧美| 亚洲网色网站| 亚洲最大的免费| 亚洲黄色小说网| 国产三级久久久| 亚洲黄色小视频在线观看| aiss精品大尺度系列| 亚洲天堂免费视频| 五月天丁香激情| 日本在线不卡一区| 亚洲精品成人自拍| 美女的胸无遮挡在线观看| 欧美日韩二区三区| 成人免费毛片东京热| 成人国产在线观看| 热这里只有精品| 久久久人成影片一区二区三区在哪下载| 欧美成人精精品一区二区频| 香蕉久久久久久久| 三级亚洲高清视频| 精品国产电影| 天然素人一区二区视频| 日韩视频亚洲视频| 日本xxxxwww| 一区二区三区国产| 91久久免费视频| 国产在线视频精品一区| 亚洲中文字幕无码专区| 日韩中文在线电影| 国产福利久久| 午夜在线激情影院| 亚洲欧美www| 国产乱码精品一区二区三区精东 | 亚洲黄网在线观看| 97国产精品videossex| 国产激情片在线观看| 亚洲va久久| 亚洲综合在线做性| 手机看片久久| 欧美精品国产精品日韩精品| 超碰97在线免费观看| 亚洲精品一线二线三线无人区| 亚洲午夜无码久久久久| 亚洲福利一二三区| 亚洲精品乱码久久| 久久电影网电视剧免费观看| 亚洲午夜精品国产| 免费福利视频一区| 91免费版网站入口| 欧美黄色三级| 亚洲18私人小影院| 国产在线观看av| 亚洲四色影视在线观看| 丰满大乳国产精品| 欧美日韩国产bt| 波多野结衣电车痴汉| 国产日韩精品视频一区| 亚洲精品乱码久久久久久蜜桃欧美| 韩日精品在线| 亚洲制服中文| 精品国内自产拍在线观看视频| 91精品久久久久久久久青青| 我想看黄色大片| 国产v综合v亚洲欧| xx欧美撒尿嘘撒尿xx| 日韩免费视频| 欧美日韩视频免费播放| 精品97人妻无码中文永久在线| 中文字幕二三区不卡| 91成年人网站| 99这里都是精品| 波多野结衣综合网| 首页亚洲中字| 成人欧美一区二区| 国产精品日本一区二区三区在线| 国产精品丝袜高跟| 成人国产免费电影| 国产一区二区三区日韩欧美| 毛片网站在线观看| 亚洲成人网av| 日韩免费av网站| 精品色蜜蜜精品视频在线观看| 国产精品18p| 亚洲无线码一区二区三区| 久久国产精品影院| 99久久精品免费看国产| 麻豆短视频在线观看| 粉嫩在线一区二区三区视频| 男人添女人荫蒂国产| 免费亚洲视频| 中文字幕制服丝袜在线| 国产精品久久天天影视| 亚洲自拍的二区三区| 99久久.com| 看一级黄色录像| 西瓜成人精品人成网站| 精品国产乱码久久久久久88av | 亚洲91av| 欧美激情免费在线| 国产精品电影| 欧洲亚洲女同hd| av有声小说一区二区三区| 国产精品久久久久久影视 | 一区二区三区国产在线| heyzo国产| 日韩成人一级大片| 国产wwwxx| 国产乱人伦偷精品视频不卡 | 免费人成在线不卡| 久久婷婷综合色| 国产精品99久久久久久有的能看 | 国产精品成人午夜| 成人免费视频国产免费观看| 亚洲图片自拍偷拍| 综合网在线观看| 欧美军同video69gay| 精品毛片在线观看| 在线一区二区三区四区| 中文字幕在线视频第一页| 欧美一区二区在线看| 91麻豆精品在线| 欧美挠脚心视频网站| jizz中国少妇| 欧美揉bbbbb揉bbbbb| 99久久国产热无码精品免费| 亚洲国产精品一区二区久| 国产黄a三级三级看三级| 亚洲аv电影天堂网| 国产资源在线看| 精品亚洲国产成av人片传媒| 亚洲免费黄色片| 日韩h在线观看| 日本免费一区视频| 在线成人激情黄色| 国产一二三在线观看| 久久精品国产电影| 天堂中文8资源在线8| 在线观看国产精品日韩av| 色操视频在线| 国产欧美精品日韩精品| 久久1电影院| 中文网丁香综合网| 色999日韩| 久操网在线观看| 欧美日韩一区二区国产| 免费的一级黄色片| 视频一区二区三区中文字幕| 精品国产乱码久久久久夜深人妻| 国产精品卡一卡二| 你懂的国产在线| 色噜噜久久综合| 成人av无码一区二区三区| 尤物yw午夜国产精品视频| freexxx性亚洲精品| 91精品国产高清| 都市激情综合| 国产日韩精品久久| 蜜乳av综合| www.好吊操| 久久成人精品| 中文字幕天堂av| 亚洲免费色视频| 日本少妇在线观看| 欧美性xxxxx极品娇小| 波多野结衣家庭主妇| 亚洲精品电影网站| 欧美黑人猛交| 91中文字精品一区二区| 天天揉久久久久亚洲精品| 久久精品免费网站| 2014亚洲片线观看视频免费| 圆产精品久久久久久久久久久| 精品国产免费视频| 色黄网站在线观看| 91亚洲精品丁香在线观看| 亚洲综合中文| 一级 黄 色 片一| 亚洲老妇xxxxxx| 国内精品国产成人国产三级| 美女撒尿一区二区三区| 精品国产欧美| 久久免费看av| 国产欧美在线| 天天干天天玩天天操| 国产日韩成人精品| 青青艹在线观看| 中文字幕精品国产| 亚州欧美在线| 97超碰人人爱| 风流少妇一区二区| 精品无码久久久久久久| 在线欧美日韩精品| 可以免费看污视频的网站在线| 国产成人精品免高潮费视频| 亚洲性视频在线| 视频一区二区在线观看| 日本va欧美va欧美va精品| 影音先锋男人看片资源| 欧美日韩你懂得| 在线中文字幕视频观看| a级国产乱理论片在线观看99| 激情欧美一区二区三区| 欧美大尺度做爰床戏| 国产精品久久久久精k8| 国产精品一级视频| 欧美激情女人20p| 视频一区中文| 日韩av片免费观看| 一区二区三区四区蜜桃| 这里只有精品免费视频| 久久精品视频va| 大奶在线精品| 在线观看17c| 91丝袜呻吟高潮美腿白嫩在线观看| 日本 欧美 国产| 日韩一级免费观看| 在线观看麻豆| 97se亚洲综合| 久久蜜桃资源一区二区老牛| 中国美女黄色一级片| 在线播放视频一区| 国产精品电影| 一级一片免费播放| 91亚洲精品乱码久久久久久蜜桃| 青青国产在线视频| 美女福利视频一区| 日韩高清三区| 国产大片一区二区三区| 欧美日韩精品二区| 日本高清在线观看wwwww色| 国产视色精品亚洲一区二区| 人人狠狠综合久久亚洲| 国产精品成人网站| 色老头一区二区三区在线观看| 色8久久影院午夜场| 亚洲精品天堂成人片av在线播放| 久久蜜桃香蕉精品一区二区三区| 国产婷婷在线视频|