【机器学习】如何处理数据不均衡问题

阅读大概需要2分钟 跟随小博主,每天进步一丢丢

最近在打比赛期间,遇到了数据不均衡问题。于是网上查了查资料,便做了以下总结。嘿嘿

什么是数据不均衡问题

举个小栗子:

如果100个人中喜欢吃梨的有90人,喜欢吃苹果的有10人。

那么如果你随便在大街上找一个人,预测他是喜欢吃梨还是苹果?肯定的,傻子都知道猜他喜欢吃梨呀。因为这样基本不用学习什么知识,就能将准确率控制在90%左右。

用图表示就为:

真实值

预测值

像这种问题,傻子都会,还要机器干什么呢?所以,我们要找到真的学习并预测梨和苹果,且不受数据不均衡影响的分类器。

解决办法

1.想办法获取更多的数据

获取更多的数据,从数据来源查找更多的数据,来弥补数据的短缺。

2.换个评测方式

以前都用准确率accuracy,也就是预测对的个数 / 总个数。但是这个评测方式在高的准确率和低的误差并没有那么有说服力。那么怎么办呢?这个时候就该想起来准确率Precision和召回率Recall,从而求得的F1值。P,R,F1值是对所有类别的测评值。如果想了解更多,我之前写了该方法的理论与实践。

详谈P(查准率),R(查全率),F1值

3.重组数据

这个方法就简单粗暴了。比如原始数据为:

方式一

将少的蓝色数据复制多份,使得数量和多的数据相当即可。

蓝色数据复制多份

注:这样做的缺点是可能会过拟合。

方式二

砍掉一些橙色部分,使得和蓝色基本持平。

注:这样做的缺点一般使得数据预测的不那么准确,因为数据丢失。

个人认为,建议优先选择方式一。

4.换机器学习算法

神经网络,对于数据不均衡问题真的是束手无策。可以换其他的机器学习方法,比如决策树之类,不受该问题影响。

5.修改算法

这个就腻害了,直接将算法改了,来改变数据不均衡带来的影响。

比如你使用的是sigmoid算法:

x=0为分界线,当x小于0时为梨,大于0的时候为苹果。但是梨比较多,那么可以将阈值x=0向右平移:

使得绝大多数预测的结果为梨,只有一些特别情况,极其确定的时候预测为苹果。

补充

对于上述的所有方法,我做一个补充。

1.选择复制小数据方法的时候,没必要非得要和大数据1:1才好。可以比例慢慢靠近,说不定期间就有一个比值就很好呢。毕竟实践才是检验真理的唯一标准。

2.砍掉大数据的方法尽量不要用,很可能会影响分类器的效果。

参考资料 morvanzhou https://www.bilibili.com/video/av16009140?from=search&seid=1236544046869302415

原文发布于微信公众号 - 深度学习自然语言处理(zenRRan)

原文发表时间:2018-07-10

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | 盯住梅西:TensorFlow目标检测实战

选自Medium 作者:Nicolas Bortolotti 机器之心编译 参与:黄小天、路雪 近日,一篇题为《Following Messi with Ten...

42970
来自专栏AI研习社

从星际2深度学习环境到神经机器翻译,上手机器学习这些开源项目必不可少

本文主要编译于 Github 文章「Getting started with machine learning」(原文链接:https://github.com...

378110
来自专栏深度学习自然语言处理

库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)

项目地址:https://github.com/bharathgs/Awesome-pytorch-list

15220
来自专栏AI科技大本营的专栏

如何让深度学习在手机应用上也能加速跑?看完这篇文章你就知道了

目前使用了深度学习技术的移动应用通常都是直接依赖云服务器来完成DNN所有的计算操作,但这样做的缺点在于移动设备与云服务器之间的数据传输带来的代价并不小(表现在系...

37280
来自专栏AI科技评论

动态 | 谷歌发布机器学习规则: 关于机器学习工程的最佳实践(上)

本文档旨在帮助已掌握机器学习基础知识的人员从 Google 机器学习的最佳实践中受益。以下为上篇,包含术语、概览以及在进行机器学习之前的第 1-20 条规则。

11030
来自专栏人工智能头条

本周必看 | 7月ML&Python 最佳开源项目Top 10 :从几百个项目中脱颖而出,都在收藏!

【导读】七月就要结束了,在即将到来的 7 月最后一个周末,人工智能头条为大家整理了本月 ML 和 Python 最受欢迎的十大开源项目。就算放假在家也可以知道大...

14130
来自专栏量子位

AI框架之战继续:TensorFlow也用上了动态计算图

量子位 李林 | 见到“动态”有点激动 Google今天发布了TensorFlow Fold,利用动态计算图来解决因多个输入大小结构不同无法自然地批处理到一起,...

30670
来自专栏新智元

【揭秘】美团如何用机器学习优化推荐系统算法

本文介绍了美团网推荐系统的构建和优化过程中的一些做法,包括数据层、触发层、融合过滤层和排序层五个层次,采用了HBase、Hive、storm、Spark和机器学...

46360
来自专栏CreateAMind

OPENAI进化策略学习-强化学习的扩展替代-速度快!

本文由谷歌翻译 https://blog.openai.com/evolution-strategies/

14420
来自专栏人工智能LeadAI

Google团队在DNN的实际应用方式的整理

很荣幸有机会和论文作者Emre Sargin关于之前发的Deep Neural Networks for YouTube Recommendations进行交流...

11930

扫码关注云+社区

领取腾讯云代金券