不均衡样本集问题

2019-08-27 11:01:52

问题描述:对于二分类问题,如果在训练的时候正负样本集合非常的不均衡,比如出现了1 :1000甚至更大的比例悬殊,那么如何处理数据以更好的训练模型。

问题求解:

为什么很多的分类模型在训练数据的时候会出现数据不均衡的问题呢?本质原因是模型在训练时优化的目标函数和人们在测试的时候的评价标准不一致。这种不对齐可能是由于训练数据的样本分布与测试时的样本分布一致,比如在训练的时候正负样本严重不均衡,但是在测试的时候,正负的比例几乎是1 :1。也可能是由于训练阶段不同类别的权重与测试的时候不一致,例如在训练的时候认为所有样本的贡献是一致的,但是在测试的时候某些样本的正确率要求要高很多。

根据上述的问题,一般可以从两个角度来处理样本不均衡的问题。

  • 基于数据的方法

基于数据的方法核心就是将原本不均衡的训练集合通过采样的方式使之变的均衡。具体来说有两种方案,一是过采样,二是欠采样。

过采样:过采样本质就是扩充少样本,使之数量变多。过采样的算法可以理解为是启发式的,也就是说言之有理即可,没有一条绝对正确的算法能够保证过采样算法的效果。

1)最简单的方案就是直接从少样本的训练集中有放回的选取样本,本质是对少样本数据集进行了复制。缺点是没有增加训练数据集的信息量,容易过拟合。

2)SMOTE算法,对少数类样本集中每个样本x,从它在少数集中的K近邻中随机选择一个样本y,然后在x,y连线上随机选取一个点作为新合成的样本。

3)对少数类加入噪声扰动或者变换(如图像数据集中对图片进行剪裁,翻转,旋转,加光照等)以构造出新的样本。

欠采样:欠采样本质就是减少多样本,使之数量变少。欠采样的算法可以理解为是启发式的,同样没有一个标准的算法能够保证欠采样的效果。

1)最简单的方案就是直接从多数类中随机挑选部分样本组成新的多数类样本集。缺点是会丢失信息,造成模型只学到了整体模式的一部分。

2)可以采用informed undersampling算法来解决随机欠采样导致的数据丢失的问题。最常见的算法是easy ensemble算法。也就是每次从多数类中随机抽取一个子集,然后使用子集和少数类训练一个分类器;重复上述的过程得到若干的分类器,最终的分类结果是上述分类器集成的结果。

3)NearMiss算法,利用K近邻信息挑选具有代表性的样本,或者根据聚类的结果进行挑选。

  • 基于算法的方法

在样本不均衡的时候,也可以通过改变模型训练时候的目标函数来矫正这种不平衡性。最常见的方案是对不同的类别采用不同的权重。

原文地址:https://www.cnblogs.com/TIMHY/p/11417389.html

时间: 2024-10-11 10:38:54

不均衡样本集问题的相关文章

不均衡样本集的重采样

原文:http://www.iterate.site/2019/04/13/07-%E4%B8%8D%E5%9D%87%E8%A1%A1%E6%A0%B7%E6%9C%AC%E9%9B%86%E7%9A%84%E9%87%8D%E9%87%87%E6%A0%B7/ 在训练二分类模型时,例如医疗诊断.网络入侵检测.信用卡反诈骗等,经常会遇到正负样本不均衡的问题.是的,正样本很少,负样本一大堆. 对于很多分类算法,如果直接采用不均衡的样本集来进行训练学习,会存在一些问题.例如,如果正负样本比例达到1

第八章 采样

所谓的采样就是从特定的概率分布中抽取相应样本点的过程. 这一章涉及的数学知识偏多,比较枯燥,个人只对最后一节 <07 不均衡样本集的重采样> 重点看了下 1 采样的作用 采样本质上是对随机现象的模拟,根据给定的概率分布,来模拟产生一个对应的随机事件. 2 均匀分布随机数 Q1:如何编程实现均匀分布随机数生成器? A1:一般可采用线性同余法来生成离散均匀分布伪随机数,计算公式为 Xt+1 ≡ a · Xt + c (mod m) 3 常见的采样方法 从某种意义上说,采样时概率密度函数的逆向应用.

机器学习中的类别不均衡问题

基础概念 类别不均衡是指在分类学习算法中,不同类别样本的比例相差悬殊,它会对算法的学习过程造成重大的干扰.比如在一个二分类的问题上,有1000个样本,其中5个正样本,995个负样本,在这种情况下,算法只需将所有的样本预测为负样本,那么它的精度也可以达到99.5%,虽然结果的精度很高,但它依然没有价值,因为这样的学习算法不能预测出正样本.这里我们可以知道不均衡问题会导致样本较少那一类的高错分率,即较少一类的样本会有较大的比例会被预测成样本数量较多的那一类. 解决方法 1.欠采样,减少数量较多那一类

模型构建&lt;2&gt;:不平衡样本集的处理

分类预测建模都有一个基本的假设,即样本集中不同类别的样本个数基本相同,但是在实际任务中,经常会出现各类样本个数差别较大的情况,这样的样本集就是不平衡样本集,它对学习建模的性能会带来很大的影响,因此必须掌握常用的处理方法,本文针对这一点进行总结梳理. 1.什么是不平衡样本集? 不平衡样本集(class-imbalance dataset)是指分类预测任务中不同类别的训练样本的数量差别较大的数据集. 举例:比如一个样本集中正例10例,反例990例,正例占比仅为1%,是一个严重的不平衡样本集. 理想情

【转】解决样本类别分布不均衡的问题

3.4 解决样本类别分布不均衡的问题 说明:本文是<Python数据分析与数据化运营>中的“3.4 解决样本类别分布不均衡的问题”. -----------------------------下面是正文内容-------------------------- 所谓的不平衡指的是不同类别的样本量异非常大.样本类别分布不平衡主要出现在分类相关的建模问题上.样本类别分布不均衡从数据规模上可以分为大数据分布不均衡和小数据分布不均衡两种. 大数据分布不均衡.这种情况下整体数据规模大,只是其中的少样本类的

机器学习之样本不均衡

以下内容是个人通过查阅网上相关资料总结出的内容 具体说明数据不均衡会带来的问题: 1)在一个二分类问题中,训练集中class 1的样本数比class 2的样本数是60:1.使用逻辑回归进行分类,最后训练出的模型可能会忽略了class 2,即模型可能会将所有的训练样本都分类为class 1. 2)在分类任务的数据集中,有三个类别,分别为A,B,C.在训练集中,A类的样本占70%,B类的样本占25%,C类的样本占5%.最后我的分类器对类A的样本过拟合了,而对其它两个类别的样本欠拟合. 那么该如何解决

Nginx做负载均衡时session共享问题详解

用nginx做负载均衡时,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 再者Nginx连接Memcached集群时,Nignx的请求从memcached服务器中根据key获得了value则直接返回value,如果没有获得到value则去MySQL中查询再返回. location / { set $memcached_key "$request_uri"; #设置请求memcached服务器的key memca

nginxtomca负载均衡

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎.能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型. 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务.

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director