Python实现过采样和欠采样
B站账号@狼群里的小杨,记得点赞收藏加关注,一键三连哦!
过采样
1.过采样的原理
过采样的方法有随机过采样和SMOTE法过采样。
(1)随机过采样
随机过采样是从100个违约样本中随机抽取旧样本作为一个新样本,共反复抽取900次,然后和原来的100个旧样本组合成新的1000个违约样本,和1000个不违约样本一起构成新的训练集。因为随机过采样重复地选取了违约样本,所以有可能造成对违约样本的过拟合。
(2)SMOTE法过采样
SMOTE法过采样即合成少数类过采样技术,它是一种针对随机过采样容易导致过拟合问题的改进方案。假设对少数类进行4倍过采样,通过下图来讲解SMOTE法的原理。
使用SMOTE法进行过采样时,传入函数里面的数据必须都是数值类型,且不存在缺失值,即经过缺失值处理,数据转换、标准化或归一化之后的高质量数据才可以使用SMOTE否则就会出现报错
import pandas as pd
from collections import Counter
from imblearn.over_sampling import RandomOverSampler, SMOTE # 随机采样函数 和SMOTE过采样函数data = pd.read_csv('数据.csv')
print(data.info())# 分别获取特征值和标签值
X = data.drop(columns='FLAG')
y = data['FLAG']# 对标签中的变量进行计数统计
print('原始标签数据统计:', Counter(y))# 随机过采样方法
ros = RandomOverSampler(random_state=0) # random_state为0(此数字没有特殊含义,可以换成其他数字)使得每次代码运行的结果保持一致
X_oversampled, y_oversampled = ros.fit_resample(X, y) # 使用原始数据的特征变量和目标变量生成过采样数据集print('随机过采样处理后', Counter(y_oversampled))
print(X_oversampled.info()) #随机采样后的特征数据信息# SMOTE法过采样
smote = SMOTE(random_state=0) # random_state为0(此数字没有特殊含义,可以换成其他数字)使得每次代码运行的结果保持一致
X_smotesampled, y_smotesampled = smote.fit_resample(X, y) # 使用原始数据的特征变量和目标变量生成过采样数据集print('Smote法过采样后', Counter(y_smotesampled))
欠采样
1.欠采样的原理
欠采样是从1000个不违约样本中随机选取100个样本,和100个违约样本一起构成新的训练集。欠采样抛弃了大部分不违约样本,在搭建模型时有可能产生欠拟合。
import pandas as pd
from collections import Counter
from imblearn.over_sampling import RandomUnderSampler, SMOTE # 随机欠采样函数data = pd.read_csv('数据.csv')
print(data.info())# 分别获取特征值和标签值
X = data.drop(columns='FLAG')
y = data['FLAG']rus = RandomUnderSampler(random_state=0)# random_state为0(此数字没有特殊含义,可以换成其他数字),使得每次代码运行的结果保持一致
X_undersampled, y_undersampled = rus.fit_resample(X,y) # 使用原始数据的特征变量和目标变量生成欠采样数据集
print(Counter(y_undersampled))
print(X_undersampled.shape)
在实战中处理样本不均衡问题时,如果样本数据量不大,通常使用过采样,因为这样能更好地利用数据,不会像欠采样那样很多数据都没有使用到;如果数据量充足,则过采样和欠采样都可以考虑使用。
Python实现过采样和欠采样相关推荐
- 学习记录609@python实现数据样本的过采样与欠采样
对于分类数据集而言,往往类别会有比较大的差异,比如分析贷款逾期的数据,往往没有逾期的数据远远大于逾期的数据,因此样本会存在不均衡的情况,这样对于数据的训练不利,因此可以使用某些方法对数据集进行调整,分 ...
- 机器学习算法 03 —— 逻辑回归算法(精确率和召回率、ROC曲线和AUC指标、过采样和欠采样)
文章目录 系列文章 逻辑回归 1 逻辑回归介绍 1.1 逻辑回归原理 输入 激活函数 1.2 损失以及优化 2 逻辑回归API介绍 3 案例:肿瘤良性恶性预测 4 分类模型的评估 4.1 分类评估方法 ...
- 机器学习(三十):过采样和欠采样技术
当我们的训练数据的类别分布严重偏斜时,我们面临的分类不平衡问题.不平衡可能影响我们的机器学习算法的一种方式是当我们的算法完全忽略少数类时.这是一个问题的原因是因为少数类通常是我们最感兴趣的类.例如,在 ...
- 数据不平衡、不平衡采样、调整分类阈值、过采样、欠采样、SMOTE、EasyEnsemble、加入数据平衡的流程、代价敏感学习BalanceCascade、
数据不平衡.不平衡采样.调整分类阈值.过采样.欠采样.SMOTE.EasyEnsemble.加入数据平衡的流程.BalanceCascade.代价敏感学习 目录
- 过采样与欠采样图像重采样(上采样下采样)
参考文章: https://blog.csdn.net/majinlei121/article/details/46742339 https://blog.csdn.net/Chaolei3/arti ...
- 数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化
文章目录 ✌ 过采样与欠采样 1.✌ 采样介绍 2.✌ 过采样 2.1 随机采样: 2.2 SMOTE采样: 3.✌ 欠采样 4.✌ 代码演示 1.1 ✌ 创建数据 1.2 ✌ 随机采样 1.3 ✌ ...
- 彻底分清机器学习中的上采样、下采样、过采样、欠采样【总结】
今天看了篇中文的硕士论文,读着读着感觉有点奇怪,仔细一看原来他把下采样和欠采样搞混了,这里笔者就详细区分一下各个名称的概念. 文章目录 1. 上采样&下采样 2.过采样&欠采样 3.信 ...
- 两分钟带你彻底明白机器学习中的过采样和欠采样是什么意思?
观点1 是不同数据有不同定义,可分为空间/非空间数据.空间数据指空间上邻近的数据含有相关信息,可以用信号处理滤波的方法提取出这些相关信号,比如图像,声音.非空间数据指数据不是空间上的邻居,不能提取空间 ...
- 降采样,过采样,欠采样,子采样,下采样
这几天看了一篇将关于降采样,过采样,欠采样,子采样,下采样 的文章,写的挺好的,直接给出链接,文章比较长不贴过来了. http://blog.sina.com.cn/s/blog_4b146a9c01 ...
- ADC的过采样与欠采样
在选择一个 ADC时,采样频率 fs是我们最优先考虑的参数.连续的模拟信号以时间间隔 ts = 1/fs被采样,究竟什么样的采样频率才能保证精确地描述原始模拟信号?很显然,同一时间段内采样越多(采样频 ...
最新文章
- 数据归一化 - MinMaxScaler()/MaxAbsScaler() - Python代码
- 程序员养发(老师付推荐)
- 网速提高学习周——系统篇
- 【HDU - 1527】【POJ - 1067】取石子游戏 (威佐夫博弈)
- NeurIPS’20 | 长尾问题太严重?半监督和自监督就可以有效缓解!
- iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器
- 前端 domparser未定义怎么解决_统一异常处理到底应该怎么做呢?
- vuforia的物体识别能识别大物体吗_衢州sensopart 物体识别检测视觉-灵测信息
- 资源位图android4.2中为什么要高效的处理位图资源
- tcmalloc内存分配器分析笔记:基于gperftools-2.4
- 7-1 输入学生姓名,输出问候信息。
- pacman安装ubuntu_最受欢迎的Linux发行版, Manjaro Linux虚拟机安装折腾全记录
- Idea java 程序打jar包(maven)
- action属性注入为null
- OpenGL编程指南学习 之一 源码环境运行
- Spring Cloud 常用注解
- 关于vs编译的程序无法正常启动(0xc0150002)的问题
- Android studio打开机智云APP(自动生成)
- 面试必备之反问面试官
- 大数据处理应遵循的四大原则