电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python數據預處理 :樣本分布不均的解決(過采樣和欠采樣)

瀏覽:2日期:2022-08-05 09:53:51

何為樣本分布不均:

樣本分布不均衡就是指樣本差異非常大,例如共1000條數據樣本的數據集中,其中占有10條樣本分類,其特征無論如何你和也無法實現完整特征值的覆蓋,此時屬于嚴重的樣本分布不均衡。

為何要解決樣本分布不均:

樣本分部不均衡的數據集也是很常見的:比如惡意刷單、黃牛訂單、信用卡欺詐、電力竊電、設備故障、大企業客戶流失等。

樣本不均衡將導致樣本量少的分類所包含的特征過少,很難從中提取規律,即使得到分類模型,也容易產生過度依賴于有限的數量樣本而導致過擬合問題,當模型應用到新的數據上時,模型的準確性和健壯性將會很差。

樣本分布不均的解決方法:

過采樣 通過增加分類中樣本較少的類別的采樣數量來實現平衡,最直接的方法是簡單復制小樣本數據,缺點是如果特征少,會導致過擬合的問題。經過改進的過抽樣方法通過在少數類中加入隨機噪聲、干擾數據或通過一定規則產生新的合成樣本。

欠采樣 通過減少分類中多數類樣本的數量來實現樣本均衡,最直接的方法是隨機去掉一些多數類樣本來減小多數類的規模,缺點是會丟失多數類中的一些重要信息。

設置權重 對不同樣本數量的類別賦予不同的權重(通常會設置為與樣本量成反比)

集成方法 每次生成訓練集時使用所有分類中的小樣本量,同時從分類中的大樣本量中隨機抽取數據來與小樣本量合并構成訓練集,這樣反復多次會得到很多訓練集和訓練模型。最后在應用時,使用組合方法(例如投票、加權投票等)產生分類預測結果。這種方法類似于隨機森林。缺點是,比較吃計算資源,費時。

python代碼:

# 生成不平衡分類數據集from collections import Counterfrom sklearn.datasets import make_classificationX, y = make_classification(n_samples=3000, n_features=2, n_informative=2, n_redundant=0, n_repeated=0, n_classes=3, n_clusters_per_class=1, weights=[0.1, 0.05, 0.85], class_sep=0.8, random_state=2018)Counter(y)# Counter({2: 2532, 1: 163, 0: 305})# 使用RandomOverSampler從少數類的樣本中進行隨機采樣來增加新的樣本使各個分類均衡from imblearn.over_sampling import RandomOverSampler ros = RandomOverSampler(random_state=0)X_resampled, y_resampled = ros.fit_sample(X, y)sorted(Counter(y_resampled).items())# [(0, 2532), (1, 2532), (2, 2532)]# SMOTE: 對于少數類樣本a, 隨機選擇一個最近鄰的樣本b, 然后從a與b的連線上隨機選取一個點c作為新的少數類樣本from imblearn.over_sampling import SMOTE X_resampled_smote, y_resampled_smote = SMOTE().fit_sample(X, y) sorted(Counter(y_resampled_smote).items())# [(0, 2532), (1, 2532), (2, 2532)]# ADASYN: 關注的是在那些基于K最近鄰分類器被錯誤分類的原始樣本附近生成新的少數類樣本from imblearn.over_sampling import ADASYNX_resampled_adasyn, y_resampled_adasyn = ADASYN().fit_sample(X, y) sorted(Counter(y_resampled_adasyn).items())# [(0, 2522), (1, 2520), (2, 2532)]# RandomUnderSampler函數是一種快速并十分簡單的方式來平衡各個類別的數據: 隨機選取數據的子集.from imblearn.under_sampling import RandomUnderSamplerrus = RandomUnderSampler(random_state=0)X_resampled, y_resampled = rus.fit_sample(X, y) sorted(Counter(y_resampled).items())# [(0, 163), (1, 163), (2, 163)]# 在之前的SMOTE方法中, 當由邊界的樣本與其他樣本進行過采樣差值時, 很容易生成一些噪音數據. 因此, 在過采樣之后需要對樣本進行清洗. # 這樣TomekLink 與 EditedNearestNeighbours方法就能實現上述的要求.from imblearn.combine import SMOTEENNsmote_enn = SMOTEENN(random_state=0)X_resampled, y_resampled = smote_enn.fit_sample(X, y) sorted(Counter(y_resampled).items())# [(0, 2111), (1, 2099), (2, 1893)]from imblearn.combine import SMOTETomeksmote_tomek = SMOTETomek(random_state=0)X_resampled, y_resampled = smote_tomek.fit_sample(X, y) sorted(Counter(y_resampled).items())# [(0, 2412), (1, 2414), (2, 2396)]# 使用SVM的權重調節處理不均衡樣本 權重為balanced 意味著權重為各分類數據量的反比from sklearn.svm import SVC svm_model = SVC(class_weight=’balanced’)svm_model.fit(X, y)# # EasyEnsemble 通過對原始的數據集進行隨機下采樣實現對數據集進行集成.# EasyEnsemble 有兩個很重要的參數: (i) n_subsets 控制的是子集的個數 and (ii) replacement 決定是有放回還是無放回的隨機采樣.from imblearn.ensemble import EasyEnsembleee = EasyEnsemble(random_state=0, n_subsets=10)X_resampled, y_resampled = ee.fit_sample(X, y)sorted(Counter(y_resampled[0]).items())# [(0, 163), (1, 163), (2, 163)]# BalanceCascade(級聯平衡)的方法通過使用分類器(estimator參數)來確保那些被錯分類的樣本在下一次進行子集選取的時候也能被采樣到. 同樣, n_max_subset 參數控制子集的個數, 以及可以通過設置bootstrap=True來使用bootstraping(自助法).from imblearn.ensemble import BalanceCascadefrom sklearn.linear_model import LogisticRegressionbc = BalanceCascade(random_state=0, estimator=LogisticRegression(random_state=0), n_max_subset=4)X_resampled, y_resampled = bc.fit_sample(X, y) sorted(Counter(y_resampled[0]).items())# [(0, 163), (1, 163), (2, 163)]# BalancedBaggingClassifier 允許在訓練每個基學習器之前對每個子集進行重抽樣. 簡而言之, 該方法結合了EasyEnsemble采樣器與分類器(如BaggingClassifier)的結果.from sklearn.tree import DecisionTreeClassifierfrom imblearn.ensemble import BalancedBaggingClassifierbbc = BalancedBaggingClassifier(base_estimator=DecisionTreeClassifier(),ratio=’auto’,replacement=False,random_state=0)bbc.fit(X, y)

以上這篇python數據預處理 :樣本分布不均的解決(過采樣和欠采樣)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | CE认证_产品欧盟ROHS-REACH检测机构-商通检测 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 模具ERP_模具管理系统_模具mes_模具进度管理_东莞市精纬软件有限公司 | 深圳公司注册-工商注册公司-千百顺代理记账公司| 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 磷酸肌酸二钠盐,肌酐磷酰氯-沾化欣瑞康生物科技 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 杭州网络公司_百度SEO优化-外贸网络推广_抖音小程序开发-杭州乐软科技有限公司 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 板式换热器_板式换热器价格_管式换热器厂家-青岛康景辉 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 板框压滤机-隔膜压滤机配件生产厂家-陕西华星佳洋装备制造有限公司 | 纳米二氧化硅,白炭黑,阴离子乳化剂-臻丽拾科技 | ?水马注水围挡_塑料注水围挡_防撞桶-常州瑞轩水马注水围挡有限公司 | 健康管理师报考条件,考试时间,报名入口—首页 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 |