对于分类数据集而言,往往类别会有比较大的差异,比如分析贷款逾期的数据,往往没有逾期的数据远远大于逾期的数据,因此样本会存在不均衡的情况,这样对于数据的训练不利,因此可以使用某些方法对数据集进行调整,分为过采样和欠采样,过采样就是将少的类别变多,欠采样就是将多的类别变少,这里只给出代码,不给出每种算法的具体的原理。
具体使用欠采样还是过采样,应该视情况而定,因为数据训练需要保证数据的充足,因此如果对数据进行欠采样后,数据量明显很少,那么绝对是不能使用欠采样的。

#生成数据集
from sklearn.datasets import make_classification
from collections import Counter
X, y = make_classification(n_samples=5000, n_features=2,n_informative=2, n_redundant=0, n_repeated=0, n_classes=3, n_clusters_per_class=1, weights=[0.01, 0.05, 0.94], class_sep=0.8, random_state=0)
#随机过采样
#生成数据集
from sklearn.datasets import make_classification
from collections import Counter
X, y = make_classification(n_samples=5000, n_features=2,n_informative=2, n_redundant=0, n_repeated=0, n_classes=3, n_clusters_per_class=1, weights=[0.01, 0.05, 0.94], class_sep=0.8, random_state=0)
#随机过采样
from imblearn.over_sampling import RandomOverSampler
X_resampled, y_resampled = RandomOverSampler().fit_resample(X, y)
print ("原始y:"+str(Counter(y)))
print("随机过采样后的y:"+str(Counter(y_resampled)))
#SMOTE过采样及其变体
from imblearn.over_sampling import SMOTE
from imblearn.over_sampling import BorderlineSMOTE
X_resampled_smote, y_resampled_smote = SMOTE().fit_resample(X, y)
X_resampled, y_resampled = BorderlineSMOTE(kind='borderline-1').fit_resample(X, y)
X_resampled, y_resampled = BorderlineSMOTE(kind='borderline-2').fit_resample(X, y)
#ADASYN过采样
from imblearn.over_sampling import ADASYN
X_resampled_adasyn, y_resampled_adasyn = ADASYN().fit_resample(X, y)
#随机欠采样
from imblearn.under_sampling import RandomUnderSampler
X_resampled, y_resampled = RandomUnderSampler().fit_resample(X, y)
print("原始y:"+str(Counter(y)))
print("随机欠采样后的y:"+str(Counter(y_resampled)))
#基于k-means聚类的欠采样
from imblearn.under_sampling import ClusterCentroids
X_resampled, y_resampled = ClusterCentroids().fit_resample(X, y)
#基于最近邻算法的欠采样
from imblearn.under_sampling import RepeatedEditedNearestNeighbours
X_resampled, y_resampled = RepeatedEditedNearestNeighbours().fit_resample(X, y)
#在数据上运用一种分类器
#然后将概率低于阈值的样本剔除掉
#从而实现欠采样
from sklearn.linear_model import LogisticRegression
from imblearn.under_sampling import InstanceHardnessThreshold
lr_underS = InstanceHardnessThreshold(random_state=0, estimator=LogisticRegression())
X_resampled, y_resampled = lr_underS.fit_resample(X, y)

看下下面的结果,可以发现过采样把1和0类别的样本增加了,欠采样把2类别的样本减少了,当然这里肯定是使用过采样更好因为欠采样导致数据集太小了。

学习记录609@python实现数据样本的过采样与欠采样相关推荐

  1. python气象数据可视化学习记录1——基于ERA5数据画风场和海平面气压填色叠加图

    python气象数据可视化学习记录1--基于ERA5数据画风场和海平面气压填色叠加图 1. 写在前面 2. 图片效果 3. 逐步代码解析 3.1导入库 3.2 读取NC格式数据 3.3 对数据进行加工 ...

  2. 数据不平衡、不平衡采样、调整分类阈值、过采样、欠采样、SMOTE、EasyEnsemble、加入数据平衡的流程、代价敏感学习BalanceCascade、

    数据不平衡.不平衡采样.调整分类阈值.过采样.欠采样.SMOTE.EasyEnsemble.加入数据平衡的流程.BalanceCascade.代价敏感学习 目录

  3. 数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化

    文章目录 ✌ 过采样与欠采样 1.✌ 采样介绍 2.✌ 过采样 2.1 随机采样: 2.2 SMOTE采样: 3.✌ 欠采样 4.✌ 代码演示 1.1 ✌ 创建数据 1.2 ✌ 随机采样 1.3 ✌ ...

  4. Python拟合数据样本的分布

    安装fitter pip install fitter 生成一段模拟数据 from scipy import stats import numpy as np # N(0,2)+N(0,10) dat ...

  5. python 欠采样_欠采样-Python数据科学技术详解与商业项目实战精讲 - python自学网...

    欠采样欠采样 Db类支持原生SQL查询操作,主要包括下面两个方法: query方法 query方法用于执行SQL查询操作,和select方法一样返回查询结果数据集(数组). 使用示例:Db::quer ...

  6. 深度学习中的采样:下采样,上采样,欠采样,过采样

    一,下采样 下采样:池化操作就是经典的下采样,将一张图片缩小,采用不同的方法将像素点合并从而获得更小分辨率的照片就叫做下采样. 二,上采样 上采样:也叫做图像插值上采样就和下采样反过来,将一张照片放大 ...

  7. python学习记录—— 利用再分析数据绘制天气图

    1 方法数据 1.1数据 数据采用1°*1°的NCEP/NCAR的再分析数据,数据格式为grib2. 数据下载地址:FNL1*1 说明:需要用邮箱注册账号,之后按需求下载具体日期的数据,每日4个时次, ...

  8. 学习记录:python GoPUP获取百度指数动态数据对比看国人野性消费

    前言 前几天看公众号,看到一篇文章利用GoPUP获取百度指数,做鸿星尔克崛起的数据对比感觉挺有意思的,参考一下文章也来玩玩学习学习 原文:http删除我s://m删除我p.we删除我ixin.q删除我 ...

  9. 学习记录:RGBA格式数据加边框

    项目场景: 最近学习使用ffmpeg在做一个视频缩略图的例子.在这里做一个记录. 在网上找了很多资料,加边框都是更改图片外围数据,这样图片会缺失一部分,不太符合我的需求. 按照这个思路,下面是一种实现 ...

最新文章

  1. Redis 官方可视化工具,功能真心强大!
  2. 对.net知识结构相关讲解
  3. 深度学习课程Deep Learning Courses
  4. JZOJ 5452. 【NOIP2017提高A组冲刺11.5】轰炸
  5. linux 换行符_一个linux帮你做高效数据统计
  6. CRM Excel导出技术实现的调试截图
  7. 祖父元素_帮助祖父母建立Skype帐户的UX经验教训
  8. yb3防爆电机型号含义_yb3防爆电机型号含义有哪些?
  9. cmd命令 - vue项目:单独安装vue-router
  10. 解决pytorch softmax警告UserWarning: Implicit ....Change the call to include dim=X as an argument.
  11. delphi ,安装插件
  12. 引入网易云音乐播放器卡片
  13. GEE-Python遥感大数据分析、管理与可视化实践技术应用
  14. Python求离散序列导数
  15. Android 面试指南
  16. 电路原理 | 电路基本定理
  17. 计算机工程师自荐信英语作文,网络工程师英文自荐信范文
  18. 星特朗望远镜怎么样_内幕解析星特朗80500评测如何?怎么样呢?优缺点吐槽揭秘...
  19. 在线压力并发工具AB版 简单易用
  20. 心电图计算心率2个公式_心电图学习之如何计算心率

热门文章

  1. phpmywind教程:单页信息调用说明【进阶篇一】
  2. LiveMedia视频平台是如何实现基于网页的语音对讲
  3. 微信第三方平台开发流程
  4. linux如何卸载lightdm,告诉你Ubuntu安装LightDM的方法及命令
  5. 这是一篇路由器踩坑的文章
  6. art-illumina模拟测序
  7. 区块链技术及应用概述
  8. Centos7 -- 用三种方法设置代理服务器上网
  9. 这届勒索病毒,其实很有上进心呀
  10. OIer专用-网址导航