SMOTE算法(处理非平衡数据)
在实际应用中,类别型的因变量可能存在严重的偏倚,即类别之间的比例严重失调。如欺诈问题中,欺诈类观测在样本集中毕竟占少数;客户流失问题中,忠实的客户往往也是占很少一部分;在某营销活动的响应问题中,真正参与活动的客户也同样只是少部分。
如果数据存在严重的不平衡,预测得出的结论往往也是有偏的,即分类结果会偏向于较多观测的类。为了解决数据的非平衡问题,2002年Chawla提出了SMOTE算法
,即合成少数过采样技术,它是基于随机过采样算法的一种改进方案。
- SMOTE算法的基本思想就是对少数类别样本进行分析和模拟,并将人工模拟的新样本添加到数据集中,进而使原始数据中的类别不再严重失衡。
- SMOTE算法的步骤
- 采样最邻近算法,计算出每个少数类样本的K个近邻。
- 从K个近邻中随机挑选N个样本进行随机线性插值。
- 构造新的少数类样本。
- 将新样本与原数据合成,产生新的训练集。
- SMOTE算法的函数介绍
SMOTE(ratio=‘auto’, random_state=None,
k_neighbors=5, m_neighbors=10,
out_step=0.5, kind=‘regular’, svm_estimator=None, n_jobs=1)
- ratio:用于指定重抽样的比例,如果指定字符型的值,可以是’minority’(表示对少数类别的样本进行抽
样)、‘majority’(表示对多数类别的样本进行抽样)、‘not minority’(表示采用欠采样方法)、‘all’(表
示采用过采样方法),默认为’auto’,等同于’all’和’not minority’。如果指定字典型的值,其中键为各个
类别标签,值为类别下的样本量。- random_state:用于指定随机数生成器的种子,默认为None,表示使用默认的随机数生成器。
- k_neighbors:指定近邻个数,默认为5个。
- m_neighbors:指定从近邻样本中随机挑选的样本个数,默认为10个。
kind:用于指定SMOTE算法在生成新样本时所使用的选项,默认为’regular’,表示对少数类别的样本进行
随机采样,也可以是’borderline1’ ‘borderline2’和’svm’。- svm_estimator:用于指定SVM分类器,默认为sklearn.svm.SVC,该参数的目的是利用支持向量机分类
器生成支持向量,然后生成新的少数类别的样本。- n_jobs:用于指定SMOTE算法在过采样时所需的CPU数量,默认为1表示仅使用1个CPU运行算法,即不
使用并行运算功能。
SMOTE算法(处理非平衡数据)相关推荐
- R语言:SMOTE - Supersampling Rare Events in R:用R对非平衡数据的处理方法
SMOTE - Supersampling Rare Events in R:用R对稀有事件进行超级采样 在这个例子中将用到以下三个包 {DMwR} - Functions and data for ...
- 教你用Python解决非平衡数据问题(附代码)
来源:数据分析1480 作者:刘顺祥 本文约3153字,建议阅读7分钟. 本文为你分享数据挖掘中常见的非平衡数据的处理,内容涉及到非平衡数据的解决方案和原理,以及如何使用Python这个强大的工具实现 ...
- Python:SMOTE算法——样本不均衡时候生成新样本的算法
Python:SMOTE算法 直接用python的库, imbalanced-learn imbalanced-learn is a python package offering a number ...
- 当常规的算法都山穷水尽之后,你可以试试python中的SMOTE算法
点击"阅读原文"直接打开[北京站 | GPU CUDA 进阶课程]报名链接 沙韬伟,苏宁易购高级算法工程师. 曾任职于Hewlett-Packard.滴滴出行. 数据学院特邀讲师. ...
- Python:SMOTE算法
17.11.28更新一下:最近把这个算法集成到了数据预处理的python工程代码中了,不想看原理想直接用的,有简易版的python开发:特征工程代码模版 ,进入页面后ctrl+F搜smote就行,请自 ...
- SMOTE算法代码实现-机器学习
类别不平衡问题 类别不平衡问题,顾名思义,即数据集中存在某一类样本,其数量远多于或远少于其他类样本,从而导致一些机器学习模型失效的问题.例如逻辑回归即不适合处理类别不平衡问题,例如逻辑回归在欺诈检测问 ...
- python过采样代码实现_过采样中用到的SMOTE算法
平时很多分类问题都会面对样本不均衡的问题,很多算法在这种情况下分类效果都不够理想.类不平衡(class-imbalance)是指在训练分类器中所使用的训练集的类别分布不均.比如说一个二分类问题,100 ...
- 类型转换与采样 || SMOTE算法
Data Transformation Attribute Types Type Conversion 复杂的编码: 简单的编码: Sampling Imbalanced Datasets SMOT ...
- 过采样中用到的SMOTE算法
平时很多分类问题都会面对样本不均衡的问题,很多算法在这种情况下分类效果都不够理想.类不平衡(class-imbalance)是指在训练分类器中所使用的训练集的类别分布不均.比如说一个二分类问题,100 ...
- 确定性有穷自动机(DFA算法) 非确定性有穷自动机(NFA算法)
确定性有穷自动机(DFA算法)& 非确定性有穷自动机(NFA算法) 非确定有限状态自动机的构建(一)--NFA的定义和实现_园荐_博客园 编译原理:有穷自动机(DFA与NFA)_Machine ...
最新文章
- HTML引用公共组件
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
- 人生第一个快速幂的题(HDU - 1097--A hard puzzle )
- python32位安装
- linux中shell条件判断if中的-a到-z的意思
- hdu 2461(线段树求面积并)
- VMware ESXi 为虚拟机分配usb设备(硬盘)
- Firefox(火狐)下载时卡在最后1秒解决办法
- 分治-Strassen矩阵乘法
- 华为手机将成“世界第一”;小米 9 发售紧急叫停;张一鸣对多闪“没预期” | 极客头条...
- sublime每次打开时都提示升级,怎么取消这个弹出框?
- 揭秘中国球员十大豪宅
- viso画图时如何让右侧显示设置形状格式栏
- 数据科学家处理小数据的7个技巧。
- CGB2105-Day09
- Insight.Numerics.inFlux.v1.0通风和气体扩散CFD软件
- binutils安装
- VAR模型与BP神经网络算法的简单实践
- 在自己电脑上搭建一个FTP服务器
- 微信LV项目(全流程)