不平衡数据的数据处理方法

在机器学习中,不平衡数据是常见场景。不平衡数据一般指正样本数量远远小于负样本数量。如果数据不平衡,那么分类器总是预测比例较大的类别,就能使得准确率达到很高的水平。比如正样本的比例为 1%,负样本的比例为 99%。这时候分类器不需要经过训练,直接预测所有样本为负样本,准确率能够达到 99%。经过训练的分类器反而可能没有办法达到99%。

对于不平衡数据的分类,为了解决上述准确率失真的问题,我们要换用 F 值取代准确率作为评价指标。用不平衡数据训练,召回率很低导致 F 值也很低。这时候有两种不同的方法。第一种方法是修改训练算法,使之能够适应不平衡数据。著名的代价敏感学习就是这种方法。另一种方法是操作数据,人为改变正负样本的比率。本文主要介绍数据操作方法。

1. 欠抽样方法

欠抽样方法是针对多数的负样本,减少负样本的数量,反而提高整体 F 值。最简单的欠抽样方法是随机地删掉一些负样本。欠抽样的缺点很明显,就是会丢失负样本的一些重要信息,不能够充分利用已有的信息。

2. 过抽样方法

过抽样方法是针对少数的正样本,增加正样本的数量,从而提高整体 F 值。最简单的过抽样方法是简单地复制一些正样本。过抽样的缺点是没有给正样本增加任何新的信息。过抽样方法对 SVM 算法是无效的。因为 SVM 算法是找支持向量,复制正样本并不能改变数据的支持向量。

改进的过抽样方法则采用加入随机高斯噪声或产生新的合成样本等方法。根据不同的数据类型,我们可以设计很巧妙的过抽样方法。有博客在识别交通信号问题上就提出了一个新颖的方法。交通信号处理识别是输入交通信号的图片,输出交通信号。我们可以通过变换交通信号图片的角度等方法,生成新的交通信号图片,如下所示。

3. SMOTE

Synthetic Minority Over-sampling Technique (SMOTE) 算法是一个最有名的过抽样的改进。SMOTE 是为了解决针对原始过抽样方法不能给正样本增加新信息的问题。算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。

5. 总结

从理论上来说,SMOTE 方法要优于过抽样方法,过抽样方法要优于欠抽样方法。但是很多工业界场景,我们反而采用欠抽样方法。工业界数据量大,即使正样本占比小,数据量也足够训练出一个模型。这时候我们采用欠抽样方法的主要目的是提高模型训练效率。总之一句话就是,有数据任性。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

学界 | 一文概览卷积神经网络中的类别不均衡问题

2578
来自专栏机器学习入门

PRML系列:1.1 多项式函数拟合

前言 此系列关于Pattern Recognition and Machine Learning的总结,博文记录一些在阅读过程中遇到的难点和自己的感悟。话不多说...

2338
来自专栏智能算法

机器学习三人行(系列四)----手写数字识别实战(附代码)

今天我们根据mnist手写数字的数据集来对0-9共10个数字进行分类,旨在通过这个分类项目的学习,一起学习分类的相关知识和技巧。 由于篇幅有限,代码未全部贴出,...

42711
来自专栏大数据挖掘DT机器学习

机器学习分类算法总结

目前看到的比较全面的分类算法,总结的还不错. 主要分类方法介绍解决分类问题的方法很多,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、K-近邻、支持向量...

3284
来自专栏数据科学与人工智能

【算法】逻辑回归(Logistic Regression) 模型

小编邀请您,先思考: 1 逻辑回归算法的原理是什么? 2 逻辑回归算法的有哪些应用? 逻辑回归(Logistic Regression)是机器学习中的一种分类模...

6285
来自专栏CSDN技术头条

如何使用TensorFlow实现卷积神经网络

编者按:本文节选自图书《TensorFlow实战》第五章,本书将重点从实用的层面,为读者讲解如何使用TensorFlow实现全连接神经网络、卷积神经网络、循环神...

2405
来自专栏Spark学习技巧

机器学习萌新必学的Top10算法

1083
来自专栏杂七杂八

matlab留出法实现

留出法(hold-out) 方法:直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即.在S上训练出模型后,用T来评估其作为测...

5679
来自专栏人工智能头条

非科班出身,我是如何自己摸索研究卷积神经网络体系结构的

虽然很不愿意提起这件伤心事,但国庆假期确实结束了?。在这说长不长说短也不算短的7天里,不知道大家有没有吃好喝好玩好pia学好呢?

933
来自专栏数据科学与人工智能

【机器学习】机器学习分类算法总结

目前看到的比较全面的分类算法,总结的还不错. 主要分类方法介绍解决分类问题的方法很多,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、K-近邻、支持向量...

2385

扫码关注云+社区