机器学习中的数据不平衡问题

最近碰到一个问题,其中的阳性数据比阴性数据少很多,这样的数据集在进行机器学习的时候会使得学习到的模型更偏向于预测结果为阴性。查找了相关的一些文献,了解了一些解决这个问题的一些方法和技术。

首先,数据集不平衡会造成怎样的问题呢。一般的学习器都有下面的两个假设:一个是使得学习器的准确率最高,另外一个是学习器应该用在与训练集有相同分布的
测试集上。如果数据不平衡,那么学习器使得它的准确率最高肯定是更偏向于预测结果为比例更大的类别。比如说阳性的比例为1%,阴性的比例为99%,很明显
的是即使不学习,直接预测所有结果为阴性,这样做的准确率也能够达到99%,而如果建立学习器也很有可能没有办法达到99%。这就是数据比例不平衡所造成
的问题。这样建立的模型即使准确率再高,在实际应用的时候效果肯定不好,而且也不是我们想要的模型。

明白了数据集的不平衡对于学习过程所造成的问题,相应的解决办法也有不少。下面是一些常用的两类方法。
1 从数据集入手。既然数据不平衡,那我们就人为的把数据集给平衡一下。可以通过随机采样比例大的类别使得训练集中大类的个数与小类相当,也可以重复小类
使得小类的个数与大类相当。前者的问题是可能会丢失信息,因为只采用部分样本。后者的问题是可能造成过拟合,因为有重复样本。前者的问题可以通过
esemble的方法来解决,即每次形成训练集的时候包括所有小类样本,同时从大类样本中随机选择样本构成训练集,这样重复很多次得到很多训练集和训练模
型。在测试的时候使用投票的方法来判断分类结果。
除了平衡数据集外,还可以通过分别在大类和小类中筛选特征,然后组合起来构成学习器。这样也可能提高效果。

2 从学习器入手。最简单的是通过改变判断类别的cutoff来改变类别样本比例;也可以只学习一个类别。此外,在学习的时候考虑到误判不同样本的不同成本,使得学习器更偏向于预测小类。这样也能够改进模型。

如何处理不平衡数据集相关的问题有很多研究,详细的请见参考文献中的综述。

参考文献
1 Sotiris Kotsiantis, et al. Handing imbalanced datasets:A review.2006.
2Foster Provost. Machine learning from imbalanced data sets.

本文引用地址:http://blog.sciencenet.cn/blog-54276-377102.html 此文来自科学网彭友松博客,转载请注明出处。

时间: 2024-10-06 01:40:30

机器学习中的数据不平衡问题的相关文章

【机器学习】解决数据不平衡问题

在机器学习的实践中,我们通常会遇到实际数据中正负样本比例不平衡的情况,也叫数据倾斜.对于数据倾斜的情况,如果选取的算法不合适,或者评价指标不合适,那么对于实际应用线上时效果往往会不尽人意,所以如何解决数据不平衡问题是实际生产中非常常见且重要的问题. 什么是类别不平衡问题 我们拿到一份数据时,如果是二分类问题,通常会判断一下正负样本的比例,在机器学习中,通常会遇到正负样本极不均衡的情况,如垃圾邮件的分类等:在目标检测SSD中,也经常遇到数据不平衡的情况,检测器需要在每张图像中评价一万个到十万个候选

蜡炬教育:如何处理机器学习中大型数据的加载问题?

原标题:蜡炬教育:如何处理机器学习中大型数据的加载问题? 蜡炬教育老师表示,在处理机器学习算法时,经常会因为数据库太大而导致无法放入内存中,而遇到这样几个问题:当运行数据集算法而导致崩溃时如何解决?当需要处理大容量数据文件时该如何加载?如何方便快捷的解决内存不足的问题? 针对以上问题,蜡炬教育老师给出7个建议: 1.分配更多内存某些ML工具或数据库默认内存配置不合理,可以看看是否可以手动分配. 2.使用较小样本确认是否需要处理所有数据?在对最终数据拟合前,使用随机抽取数据样本这个示例即可. 3.

分类问题中的数据不平衡问题

http://blog.csdn.net/heyongluoyao8/article/details/49408131 http://blog.csdn.net/lxg0807/article/details/71440477 ??在很多机器学习任务中,训练集中可能会存在某个或某些类别下的样本数远大于另一些类别下的样本数目.即类别不平衡,为了使得学习达到更好的效果,因此需要解决该类别不平衡问题. Jason Brownlee的回答: 原文标题:8 Tactics to Combat Imbala

机器学习中的数据标准化

标准化方法 Z-score Normalization Z-score normalization又叫?standardization(规范化),将特征进行缩放使得其具有均值为0,方差为1的标准正态分布的特性. \[ z = \frac{x-\mu}{\sigma} \] 其中均值\(\mu = \frac{1}{N} \sum_{i=1}^N (x_i)\),方差\(\sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2}\). 标准化特征使

对于机器学习中,数据增强

众所周知,数据对机器学习来说是那么的重要,但是我们通常因为各种原因得不到 理想的数据量,这时候我们就想到进行数据增强.比如添加噪声,左右镜像,随机crop 一部分等,但是有一点要注意的,就是要记住我们要机器学习的是什么特征,比如说人脸, 眼睛,嘴巴等,这时候添加噪声就不能改变这些特征.一句话:喂给机器什么数据,机器 就学什么数据.(但注意,并不是你觉得是这样,机器就真的这样,因为,机器可能通过 其他方式进行学习,所以数据量越大,机器可选择的路越少,就越有可能按照你的想法学 习对应的特征.数据量越

如何解决机器学习中数据不平衡问题

作者:无影随想 时间:2016年1月. 出处:http://www.zhaokv.com/2016/01/learning-from-imbalanced-data.html 声明:版权所有,转载请联系作者并注明出处 这几年来,机器学习和数据挖掘非常火热,它们逐渐为世界带来实际价值.与此同时,越来越多的机器学习算法从学术界走向工业界,而在这个过程中会有很多困难.数据不平衡问题虽然不是最难的,但绝对是最重要的问题之一. 一.数据不平衡 在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是

[转]如何处理机器学习中的不平衡类别

如何处理机器学习中的不平衡类别 原文地址:How to Handle Imbalanced Classes in Machine Learning 原文作者:elitedatascience 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:RichardLeeH 校对者:lsvih, lileizhenshuai 如何处理机器学习中的不平衡类别 不平衡类别使得"准确率"失去意义.这是机器学习 (特别是在分类)中一个令人惊讶的常见问题,出现于每

分类中数据不平衡问题的解决经验

问题:研究表明,在某些应用下,1∶35的比例就会使某些分类方法无效,甚至1∶10的比例也会使某些分类方法无效. (1)少数类所包含的信息就会很有限,从而难以确定少数类数据的分布,即在其内部难以发现规律,进而造成少数类的识别率低 (2)数据碎片.很多分类算法采用分治法,样本空间的逐渐划分会导致数据碎片问题,这样只能在各个独立的子空间中寻找数据的规律,对于少数类来说每个子空间中包含了很少的数据信息,一些跨空间的数据规律就不能被挖掘出来. (3)不恰当的归纳偏置.许多归纳推理系统在存在不确定时往往倾向

分类中数据不平衡问题的解决经验[转载]

问题:研究表明,在某些应用下,1∶35的比例就会使某些分类方法无效,甚至1∶10的比例也会使某些分类方法无效.(1)少数类所包含的信息就会很有限,从而难以确定少数类数据的分布,即在其内部难以发现规律,进而造成少数类的识别率低(2)数据碎片.很多分类算法采用分治法,样本空间的逐渐划分会导致数据碎片问题,这样只能在各个独立的子空间中寻找数据的规律,对于少数类来说每个子空间中包含了很少的数据信息,一些跨空间的数据规律就不能被挖掘出来.(3)不恰当的归纳偏置.许多归纳推理系统在存在不确定时往往倾向于把样