泛统计理论初探——机器学习的欠采样算法

2023-11-05

统计学习-经典欠采样方法简介

机器学习中的欠采样方法
    在之前的文章中己经介绍了重采样的方法和使用情况,本次文章将会介绍欠采样方法的原理和经典欠采样算法的步骤以及使用背景。从原理上来说,欠采样方法的思路是和重采样方法刚好相反的,因为重采样是针对数量较小的样本类别进行反复抽取或者是人工制造一些样本;而欠采样方法则是针对数量较多的样本类别进行数据的抛弃。
    下面我们先来简要了解普通的欠采样方法,最简单的欠采样方法其实就是从数量多的样本里面随机选择样本进行抛弃,比如某个问题里有数据正例1500条和负例300条,那么传统的欠采样方法就是随机选择1200条正例数据进行丢弃,然后得到剩下的300条正例数据和原始的300条负例数据进行结合,将结合后的数据作为训练集进行下一步的训练。我们可以发现,这种方法是比较奢侈的,因为有1200条正例的数据直接被去弃而没有被使用到,并且人为地降低了模型的训练数据量,容易导致模型的欠拟合。
    那么针对上述的简单欠采样方法,显然是没有充分利用数据的,所以我们继续优化,可以使用多次欠采样进行训练,也就是将大样本类别的数据分成N份和小样本类别数据匹配的数据,然后将N份数据进行训练,得到N个模型,然后再将N个模型通过集成学习的方式进行模型组合,从而得到一个利用数据更充分的模型。而一般来说,这种基于欠采样的集成学习有两种,即Bagging和Boosting思路,下面我们将分别介绍这两种方法的思路和步骤。
    第一种方法是所谓的EasyEnsemble方法,它是属于集成学习里的Bagging方法,原理也是很接近上面介绍的对欠采样进行优化的方法,但不同的是,这种方法会反复对多数类的数据进行抽样,而不是直接将多数类的数据进行不重复的分割。它的步骤如下:
    1、通过多数类的样本中进行多次独立随机的抽样,得到K个和少数类样本数量匹配或是相近的样本。
    2、基于每一个抽样得到的多数类的样本和少数类的样本进行结合,并且使用模型进行训练。
    3、重复步骤2,并且得到K个模型。
    4、将这K个模型进行结合,采用投票等集成方法进行组合,成为一个类似随机森林的组合模型。
    第二种方法是所谓的BalanceCascade方法,它属于集成学习里的Boosting方法,原理其实就是针对前一轮被模型判断错误的样本进行保留,判断正确的样本进行抛弃,反复执行若干次后得到一个新的模型。它的步骤如下:
    1、构建初始化的参数,比如训练的轮次数,抽取子集的数量等参数。
    2、在多数类的样本里随机抽样得到和少数类样本里数相近的D个样本,将D个本和少数样本进行组合,得到数据后使用模型M开始训练。
    3、训练完毕后进行判别,排除那些能被模型M正确判断的多数类样本数据,然后将剩余数据交给下一轮进行训练。
    4、结合当前轮次抽到的多数类数据和上一轮判别错误的数据,结合少数类数据构建一个新的数据集,并且继续用模型进行训练。
    5、反复重复步骤3和步骤4后,得到一个融合多层级数据的集成模型。
    总的来说,欠采样方法是需要结合集成学习的,否则是非常浪费数据的。而过采样则需要结合正则化的模型,否则会有过拟合的现象。当然使用者可以采用其他的指标或者调整判别阈值,这样可以不使用欠采样或者重采样方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

泛统计理论初探——机器学习的欠采样算法 的相关文章

随机推荐

  • 关于启动fabric网络错误:cryptogen tool not found. exiting

    在启动fabric中first network网络时 需要执行一个自动化脚本 byfn sh m generate 该脚本需要自动生成相关证书信息 fabric官方提供了两款工具 configtxgen cryptogen 在脚本执行中会从
  • JUnit5学习之六:参数化测试(Parameterized Tests)基础

    项目主页 https github com zq2599 blog demos 该项目在GitHub上的主页 git仓库地址 https https github com zq2599 blog demos git 该项目源码的仓库地址 h
  • 断言(assert)的用法

    我一直以为 assert 仅仅是个报错函数 事实上 它居然是个宏 并且作用并非 报错 在经过对其进行一定了解之后 对其作用及用法有了一定的了解 assert 的用法像是一种 契约式编程 在我的理解中 其表达的意思就是 程序在我的假设条件下
  • MySQL8.0.26安装配置教程(windows 64位)

    目录 一 进入MySQL官网下载安装 二 配置并初始化MySQL 三 配置环境变量 四 检验安装 一 进入MySQL官网下载安装 进入Mysql官网MySQL 点击DOWNLOADS下拉页面点击红框内容 跳转页面后点击红框 下载后并解压到目
  • 8个Python免费网站,一周熟练Python,知道就是赚到!

    前言 Python 已经成为一种再主流不过的编程语言了 许多同学开始学习它 又不知道该如何入手 希望在一周内学习最强大和最流行的编程语言之一 是的 你读得对 如果你有奉献精神 你可以在一周内学习Python 今天呢 我给大家推荐八个免费学习
  • 教你如何有效防止DDos攻击?

    DDos又称分布式拒绝服务 DDos是利用大量合理的请求造成资源过载 导致服务不可用 就比如一个餐馆总共有100个座位 突然有一天某个商家恶意竞争 雇佣了200个人来到这个餐馆坐着不吃不喝 门口还排着长长的队 导致餐馆无法正常营业 这就是D
  • 【Flutter 2-7】Flutter手把手教程UI布局和Widget——垂直布局控件Column

    Column Column是在Flutter中常见的布局控件 它负责垂直方向布局 Row负责水平方向布局 二者都是继承于Flex 类似于iOS里面的UIScrollView 但是又有很多不同 先来看一下Column的构造函数 Column
  • 初级unity开发的重难点知识总结

    生命周期函数 10个 Awake gt OnEnable gt Start gt FixedUpdate gt Update gt LateUpdate gt OnGUI gt Reset gt OnDisable gt OnDestroy
  • 原来的控件delphi7里何处寻?

    经常有朋友提这样的问题 我原来在delphi5或者delphi6中用的很熟的控件到哪里去了 是不是在delphi7中没有了呢 这是不是意味着我以前写的代码全都不能够移植到delphi7中来了呢 是不是我必须学习适应这些新的控件呢 现在我就对
  • 最全的中文编码

    GB18030
  • PTA L2-010 排座位 (25 分)

    include
  • 百亿级数据分表后怎么分页查呢?

    当业务规模达到一定规模之后 像淘宝日订单量在5000万单以上 美团3000万单以上 数据库面对海量的数据压力 分库分表就是必须进行的操作了 而分库分表之后一些常规的查询可能都会产生问题 最常见的就是比如分页查询的问题 一般我们把分表的字段称
  • HCIP VRRP技术

    一 VRRP概述 VRRP Virtual Router Pedundancy Protocol 虚拟路由器冗余协议 既能够实现网关的备份 又能够解决多个网关之间互相冲突的问题 从而提高网络可靠性 局域网中的用户的终端通常采用配置一个默认网
  • osg学习(六十)setTextureMode setTextureAttributeAndModes

    ss setTextureMode unit mode value ss setTextureAttributeAndModes unit tex get osg StateSet cpp void StateSet setTextureM
  • linux系统gpio中断的实现(提供例程)

    该接口基于linux提供的通用中断API接口实现 1 流程 gpio外部引脚发生电平变化 上升沿 下降沿 gt 触发驱动层 driver c 的中断服务函数 gt 在中断服务函数中通过异步消息机制通知到应用层 app c 2 中断响应时间测
  • linux内核SPI总线驱动分析(一)

    原文地址 http www cnblogs com liugf05 archive 2012 12 03 2800457 html SPI总线驱动分析 1 SPI概述 SPI是英语Serial Peripheral interface的缩写
  • ubuntu20.04设置静态ip文件的地址

    旧版本在eth0 新版本在 etc netplan 01 network manager all yaml 可配置关闭hdcp实现静态ip设置及DNS和网关 具体设置内容网上教程很多
  • 设置button按钮背景色,及字体的颜色

    新建一个对话框工程 在对话框中添加一个按钮 然后 从button类继承一个子类 CNewButton 重载 PreSubclassWindow 修改按钮的属性 ModifyStyle 0 BS OWNERDRAW 告诉系统 用户手绘按钮 然
  • python练习

    题目 一个数如果恰好等于它的因子之和 这个数就称为 完数 例如6 1 2 3 编程找出1000以内的所有完数 from sys import stdout for j in range 2 1001 k n 1 s j for i in r
  • 泛统计理论初探——机器学习的欠采样算法

    统计学习 经典欠采样方法简介 机器学习中的欠采样方法 在之前的文章中己经介绍了重采样的方法和使用情况 本次文章将会介绍欠采样方法的原理和经典欠采样算法的步骤以及使用背景 从原理上来说 欠采样方法的思路是和重采样方法刚好相反的 因为重采样是针