在实际应用中,类别型的因变量可能存在严重的偏倚,即类别之间的比例严重失调。如欺诈问题中,欺诈类观测在样本集中毕竟占少数;客户流失问题中,忠实的客户往往也是占很少一部分;在某营销活动的响应问题中,真正参与活动的客户也同样只是少部分。
如果数据存在严重的不平衡,预测得出的结论往往也是有偏的,即分类结果会偏向于较多观测的类。为了解决数据的非平衡问题,2002年Chawla提出了SMOTE算法,即合成少数过采样技术,它是基于随机过采样算法的一种改进方案。

  1. SMOTE算法的基本思想就是对少数类别样本进行分析和模拟,并将人工模拟的新样本添加到数据集中,进而使原始数据中的类别不再严重失衡。
  2. SMOTE算法的步骤
  • 采样最邻近算法,计算出每个少数类样本的K个近邻。
  • 从K个近邻中随机挑选N个样本进行随机线性插值。
  • 构造新的少数类样本。
  • 将新样本与原数据合成,产生新的训练集。
  1. 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算法(处理非平衡数据)相关推荐

  1. R语言:SMOTE - Supersampling Rare Events in R:用R对非平衡数据的处理方法

    SMOTE - Supersampling Rare Events in R:用R对稀有事件进行超级采样 在这个例子中将用到以下三个包 {DMwR} - Functions and data for ...

  2. 教你用Python解决非平衡数据问题(附代码)

    来源:数据分析1480 作者:刘顺祥 本文约3153字,建议阅读7分钟. 本文为你分享数据挖掘中常见的非平衡数据的处理,内容涉及到非平衡数据的解决方案和原理,以及如何使用Python这个强大的工具实现 ...

  3. Python:SMOTE算法——样本不均衡时候生成新样本的算法

    Python:SMOTE算法 直接用python的库, imbalanced-learn imbalanced-learn is a python package offering a number ...

  4. 当常规的算法都山穷水尽之后,你可以试试python中的SMOTE算法

    点击"阅读原文"直接打开[北京站 | GPU CUDA 进阶课程]报名链接 沙韬伟,苏宁易购高级算法工程师. 曾任职于Hewlett-Packard.滴滴出行. 数据学院特邀讲师. ...

  5. Python:SMOTE算法

    17.11.28更新一下:最近把这个算法集成到了数据预处理的python工程代码中了,不想看原理想直接用的,有简易版的python开发:特征工程代码模版 ,进入页面后ctrl+F搜smote就行,请自 ...

  6. SMOTE算法代码实现-机器学习

    类别不平衡问题 类别不平衡问题,顾名思义,即数据集中存在某一类样本,其数量远多于或远少于其他类样本,从而导致一些机器学习模型失效的问题.例如逻辑回归即不适合处理类别不平衡问题,例如逻辑回归在欺诈检测问 ...

  7. python过采样代码实现_过采样中用到的SMOTE算法

    平时很多分类问题都会面对样本不均衡的问题,很多算法在这种情况下分类效果都不够理想.类不平衡(class-imbalance)是指在训练分类器中所使用的训练集的类别分布不均.比如说一个二分类问题,100 ...

  8. 类型转换与采样 || SMOTE算法

    Data Transformation Attribute Types Type Conversion 复杂的编码:  简单的编码: Sampling Imbalanced Datasets SMOT ...

  9. 过采样中用到的SMOTE算法

    平时很多分类问题都会面对样本不均衡的问题,很多算法在这种情况下分类效果都不够理想.类不平衡(class-imbalance)是指在训练分类器中所使用的训练集的类别分布不均.比如说一个二分类问题,100 ...

  10. 确定性有穷自动机(DFA算法) 非确定性有穷自动机(NFA算法)

    确定性有穷自动机(DFA算法)& 非确定性有穷自动机(NFA算法) 非确定有限状态自动机的构建(一)--NFA的定义和实现_园荐_博客园 编译原理:有穷自动机(DFA与NFA)_Machine ...

最新文章

  1. HTML引用公共组件
  2. Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
  3. 人生第一个快速幂的题(HDU - 1097--A hard puzzle )
  4. python32位安装
  5. linux中shell条件判断if中的-a到-z的意思
  6. hdu 2461(线段树求面积并)
  7. VMware ESXi 为虚拟机分配usb设备(硬盘)
  8. Firefox(火狐)下载时卡在最后1秒解决办法
  9. 分治-Strassen矩阵乘法
  10. 华为手机将成“世界第一”;小米 9 发售紧急叫停;张一鸣对多闪“没预期” | 极客头条...
  11. sublime每次打开时都提示升级,怎么取消这个弹出框?
  12. 揭秘中国球员十大豪宅
  13. viso画图时如何让右侧显示设置形状格式栏
  14. 数据科学家处理小数据的7个技巧。
  15. CGB2105-Day09
  16. Insight.Numerics.inFlux.v1.0通风和气体扩散CFD软件
  17. binutils安装
  18. VAR模型与BP神经网络算法的简单实践
  19. 在自己电脑上搭建一个FTP服务器
  20. 微信LV项目(全流程)

热门文章

  1. GoLand 连接远程代码库
  2. 流体动力matlab仿真,IND4动力总成丨基于MATLAB simulink的液力变矩器仿真建模
  3. android微信朋友圈相册背景,Android 仿微信朋友圈图片拖拽返回
  4. oracle临时表的创建
  5. Python3之标准库
  6. linux du 查看文件夹大小
  7. 翻译记忆软件-塔多思TRADO经典教程_2
  8. tcp粘包 java_详说tcp粘包和半包
  9. 无聊的小知识--数据中心为啥要建在山区
  10. html 科赫雪花,CSS3 科赫雪花分形动画