目录

一.获取更多的数据:

二.更换评估方式:

三.更换机器学习方法:

四.修改算法:

五.最常见:

六.参考:


不均衡的数据理解预测起来很简单,永远都是预测多的数据的那一方,这样准没错,特别是数据多很多的情况的那一方,比如多的占了90%,少的占10%.只要每一次都预测多的那一批数据,预测的准确性就可以达到90%了

没错,这样听起来是不是有点偷懒的感觉呢?其实机器也懂得这些小伎俩,所以经过训练以后,机器也变得精明了,每一次都预测多的那部分数据,但是这样是不可以的!接下来我们来谈谈解决这个问题的几种方法。

一.获取更多的数据:

首先我们要想一想我们是否可以获取更多的数据,有的时候我们在获取数据的前期,通常数据会呈现一个变化的趋势,这时候表现为某一种数据量偏多,等到数据的后半段的时期,数据的变化的趋势可能就会不一样了。如果没有获取后半期的数据,从整体来看,预测就可能不会那么的精准.所以想办法获得更多的数据有可能会改善这个情况~

二.更换评估方式:

通常情况下,我们会使用准确率(Accuracy)和误差(Cost)两种方式来判断机器学习的成果.但是在不均衡的数据面前,高的准确率和低的误差就显得没有那么有用和重要了.

所以我们就可以换个方式去计算,很多时候我们会使用Confusion Matrix去计算Precision&Recall,然后在通过Precision&Recall去计算F1 Score(or F-score).通过这样的数据,我们可以很大程度上去区分不均衡数据,并且可以给出更好的分数.

三.更换机器学习方法:

采用对不均衡数据集不敏感的方法。在使用一些机器学习的方法中,比如神经网络,在面对不均衡数据的时候都是束手无策的。但是像决策树这样的方法就不会受到不均衡数据的影响。

四.修改算法:

在所有方法中,最具有创造力的方法莫过于这个修改算法了,如果你使用的是Sigmoid函数,他会有一个预测的门槛,如果低于门槛,预测的结果为梨,如果超过了门槛,预测的结果为苹果。

不过因为现在梨的数量过多,这个时候我们就需要调解下门槛的位置,使得门槛更加的偏向于苹果这一边,只有数据非常准确的情况下,模型才会预测为苹果,从而使机器学习学习到更好的效果.

机器学习中数据不平衡怎么处理 如何处理不平衡数据集_机器学习中数据不平衡怎么处理

五.最常见:

以下几种方式是最常见,也是最简单粗暴的方式:

  1. 过采样:第一种方式是复制少数数据里的样本,使其可以达到和多数数据样本差不多的数量。
  2. 欠采样:第二种方式就是对多数样本的数据进行开刀,砍掉一些多数样本的数据,还是使两者的数量差不多。
  3. 分配权重:在损失函数中使用类权重, 代表性不足的类在损失函数中接收更高的权重,使得该特定类的任何未命中分类将导致损失函数中的非常高的误差。
  4. 增加数据:可以通过GAN或者其他方式产生更多的训练数据来帮助训练。

六.参考:

  1. https://mp.weixin.qq.com/s/e0jXXCIhbaZz7xaCZl-YmA
  2. https://towardsdatascience.com/7-practical-deep-learning-tips-97a9f514100e?gi=fb2ab7c51d7d