机器学习——下采样(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不易产生这方面的问题。
机器学习——下采样(under-sampling)相关推荐
- 彻底分清机器学习中的上采样、下采样、过采样、欠采样【总结】
今天看了篇中文的硕士论文,读着读着感觉有点奇怪,仔细一看原来他把下采样和欠采样搞混了,这里笔者就详细区分一下各个名称的概念. 文章目录 1. 上采样&下采样 2.过采样&欠采样 3.信 ...
- 【机器学习】信用卡欺诈检测 (下采样、SMOTE过采样、集成学习、Pytorch)
2022.4.17 补充 视频:[参考:6-01 信用卡交易欺诈数据检测 _哔哩哔哩_bilibili] [参考:机器学习/Kaggle/信用卡欺诈检测/Tommy/数据不平衡.ipynb · mya ...
- 机器学习(四) 下采样和上采样
查看数据样本 import pandas as pd import matplotlib.pyplot as plt import numpy as np%matplotlib inlinedata ...
- 数据上采样和下采样_采样不足以配置您的ml数据
数据上采样和下采样 By Isaac Backus and Bernease Herman 艾萨克·巴库斯(Isaac Backus)和伯尼瑟斯·赫曼(Bernease Herman) It's 20 ...
- python使用imbalanced-learn的ClusterCentroids方法进行下采样处理数据不平衡问题
python使用imbalanced-learn的ClusterCentroids方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜 ...
- python使用imbalanced-learn的AllKNN方法进行下采样处理数据不平衡问题
python使用imbalanced-learn的AllKNN方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class ske ...
- python使用imbalanced-learn的NearMiss方法进行下采样处理数据不平衡问题
python使用imbalanced-learn的NearMiss方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class s ...
- python使用imbalanced-learn的TomekLinks方法进行下采样处理数据不平衡问题
python使用imbalanced-learn的TomekLinks方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class ...
- python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题
python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏 ...
- python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题
python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(c ...
最新文章
- Maven学习——安装与修改Maven的本地仓库路径
- 服务都启用的情况下XP远程桌面还是出现“此计算机无法连接到远程计算机”...
- 从程序员的角度分析微信小程序
- LINUX--特殊权限SUID,SGID,Sticky
- CentOS允许某一端口接受外部链接
- 图像分类 数据准备(将文件夹中所有图片路径写到TXT文件中)
- lms自适应滤波器实现噪声干扰的语音恢复_使用VoiceFliter-Lite改进设备上的语音识别...
- 【java笔记】Object类
- 摄影测量之空间后方交会程序
- 【杂七杂八】Dreamweaver在Surface高分辨率下工具栏字体和按钮太小的解决办法
- dul恢复oracle数据,学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中...
- Metric评价指标-Embedding Similarity
- 介绍几款最优秀的CMS(网站内容管理系统)
- win10系统找不到telnet服务器,大神解答win10系统找不到Telnet服务的办法
- 使用docker engine 运行时 集群部署 kubernetes v1.23
- 360浏览器无法看html5,win7在360浏览器上不能看flash的彻底解决方法推荐
- 数字图像处理领域的二十四个典型算法
- 国内互联网公司梯队划分,阿里,腾讯,华为第一挡,网友坐不住了!
- 华为OD机试 - 找数字、找等值元素(Java JS Python)
- 鸿蒙宴历史背景,鸿门宴的历史背景介绍
热门文章
- 2款QQ空间首页好看的psd源码
- nexus3的目录介绍
- 指令级并行——超标量Superscalar与超长指令字VLIW架构
- 西威变频器使用说明书_西威变频器说明书
- 安装python3并安装paramiko
- 特洛伊木马与计算机病毒有什么区别,特洛伊木马Vs病毒Vs蠕虫, 有什么区别?...
- VmPlayer上设置主机和windows虚拟机文件夹共享
- NB-IoT天线座和连接器SMA、U.FL、IPX、IPEX
- 20130830sqlplus使用及联机文档
- php获取qq头像地址,使用PHP语言通过邮箱获取全球公认的Gravatar头像地址