机器学习——下采样(under-sampling)「建议收藏」

下采样(under-sampling)什么是下采样?当原始数据的分类极不均衡时,如下图我们要想用这样的数据去建模显然是存在问题的。尤其是在我们更关心少数类的问题的时候数据分类不均衡会更加的突出,例如,信用卡诈骗、病例分析等。在这样的数据分布的情况下,运用机器学习算法的预测模型可能会无法做出准确的预测,最后的模型显然是趋向于预测多数集的,少数集可能会被当做噪点或被忽视,相比多数集,少数集被…

大家好,又见面了,我是你们的朋友全栈君。

下采样(under-sampling)

什么是下采样?

当原始数据的分类极不均衡时,如下图
在这里插入图片描述
在这里插入图片描述
我们要想用这样的数据去建模显然是存在问题的。尤其是在我们更关心少数类的问题的时候数据分类不均衡会更加的突出,例如,信用卡诈骗、病例分析等。在这样的数据分布的情况下,运用机器学习算法的预测模型可能会无法做出准确的预测,最后的模型显然是趋向于预测多数集的,少数集可能会被当做噪点或被忽视,相比多数集,少数集被错分的可能性很大。从本质上讲,机器学习算法就是从大量的数据集中通过计算得到某些经验,进而判定某些数据的正常与否。但是,不均衡数据集,显然少数类的数量太少,模型会更倾向于多数集。

常用的下采样方法

解决数据分布不均衡的下采样的目的就从多数集中选出一部分数据与少数集重新组合成一个新的数据集。那么如何在多数集中选出这样的数据呢?

1. 随机下采样

随机欠采样的思想同样比较简单,就是从多数类样本中随机选取一些剔除掉。这种方法的缺点是被剔除的样本可能包含着一些重要信息,致使学习出来的模型效果不好。

2. EasyEnsemble 和 BalanceCascade

EasyEnsemble和BalanceCascade采用集成学习机制来处理传统随机欠采样中的信息丢失问题。

  • EasyEnsemble将多数类样本随机划分成n个子集,每个子集的数量等于少数类样本的数量,这相当于欠采样。接着将每个子集与少数类样本结合起来分别训练一个模型,最后将n个模型集成,这样虽然每个子集的样本少于总体样本,但集成后总信息量并不减少。
  • 如果说EasyEnsemble是基于无监督的方式从多数类样本中生成子集进行欠采样,那么BalanceCascade则是采用了有监督结合Boosting的方式(Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数)。在第n轮训练中,将从多数类样本中抽样得来的子集与少数类样本结合起来训练一个基学习器H,训练完后多数类中能被H正确分类的样本会被剔除。在接下来的第n+1轮中,从被剔除后的多数类样本中产生子集用于与少数类样本结合起来训练,最后将不同的基学习器集成起来。BalanceCascade的有监督表现在每一轮的基学习器起到了在多数类中选择样本的作用,而其Boosting特点则体现在每一轮丢弃被正确分类的样本,进而后续基学习器会更注重那些之前分类错误的样本。

3. NearMiss

NearMiss本质上是一种原型选择(prototype selection)方法,即从多数类样本中选取最具代表性的样本用于训练,主要是为了缓解随机欠采样中的信息丢失问题。NearMiss采用一些启发式的规则来选择样本,根据规则的不同可分为3类:

  • NearMiss-1:选择到最近的K个少数类样本平均距离最近的多数类样本
  • NearMiss-2:选择到最远的K个少数类样本平均距离最近的多数类样本
  • NearMiss-3:对于每个少数类样本选择K个最近的多数类样本,目的是保证每个少数类样本都被多数类样本包围

NearMiss-1和NearMiss-2的计算开销很大,因为需要计算每个多类别样本的K近邻点。另外,NearMiss-1易受离群点的影响,如下面第二幅图中合理的情况是处于边界附近的多数类样本会被选中,然而由于右下方一些少数类离群点的存在,其附近的多数类样本就被选择了。相比之下NearMiss-2和NearMiss-3不易产生这方面的问题。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124688.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sop流程图模板_SOP模板-标准操作流程编写程序.doc「建议收藏」

    sop流程图模板_SOP模板-标准操作流程编写程序.doc「建议收藏」SOP模板-标准操作流程编写程序PAGE第PAGE7页共NUMPAGES7页标准操作流程编写程序编制部门:商务部文件审核:文件批准:批准日期:2005.05.25修改记录修改时间修改摘要批准人修改申请单号2005-5-25修改部门编码1目的指导文件编写者能够高效的编写出符合文件编写标准程序的文件来。范围此文件适合所有编写标准操作流程的文件编写人员。3职责3.1…

    2022年5月26日
    71
  • pycharm设置打不开怎么回事_pycharm界面设置

    pycharm设置打不开怎么回事_pycharm界面设置害,pycharm专业版到期了,不能再用了,下了一个社区版,想要编译程序的时候发现没有解释器。解决方法找到设置(右上角,小齿轮)找到项目的Pythoninterpreter设置,点击小齿轮添加新的解释器。选择添加新的interpreter选择对应版本的Python即可。点确定就设置好了。…

    2022年8月26日
    7
  • python skitlearn_Python sklearn

    python skitlearn_Python sklearn1.Sklearn简介Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(DimensionalityReduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点:简单高效的数据挖…

    2022年8月31日
    4
  • 微信公众平台开发入门教程(图文详解)

    微信公众平台开发入门教程(图文详解)在这篇入门教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯及XML语言基础。如果你还没有,那么请先学习相关知识。我们将使用微信公众账号方倍工作室(账号:pondbaystudio,二维码在最底部)作为讲解的例子。这篇入门教程将引导你完成如下任务:创建百度云平台应用启用微信公众平台开发模式获取订阅、文字、图片、语音、视频消息回复文本、图文及音乐消息程

    2022年5月3日
    42
  • android 视频文件不能进行幻灯片的播放[通俗易懂]

    android 视频文件不能进行幻灯片的播放

    2022年1月22日
    46
  • django权限管理例子_php万能自定义表单系统

    django权限管理例子_php万能自定义表单系统前言上一篇我们分析了认证的源码,一个请求认证通过以后,第二步就是查看权限了,drf默认是允许所有用户访问权限源码分析源码入口:APIView.py文件下的initial方法下的check_per

    2022年7月31日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号