关于机器学习样本不均衡的思考

文章目录

  • 1.写在前面
  • 2.参考资料
  • 3.正题
    • 3.1 什么是样本不均衡
    • 3.2 样本不均衡会带来什么问题
    • 3.3 对于样本不均衡有哪些处理方法
      • 1.上采样法
      • 2.下采样法
      • 3.修改损失权重
    • 新问题
      • 1.样本不均衡不会导致模型只学习到类别比较少的数据,从而也实现较好的分类效能
      • 2.我对样本进行上采样,怎么就容易过拟合了

1.写在前面

写作目的:主要是昨天在汇报时,听同门讲样本不均衡的问题,忽然意识到在机器学习中这应该是个问题,所以特地查资料,记录一下,并以此作为自己的心得

2.参考资料

样本不均衡处理方法 https://mp.weixin.qq.com/s/y7wciflZpXaL-pB0Osft-Q
广告行业中那些趣事系列24:从理论到实践解决文本分类中的样本不均衡问题 https://mp.weixin.qq.com/s/fIyx08UPmk0FGAbPWbEe4w
https://dataaspirant.com/handle-imbalanced-data-machine-learning/

3.正题

3.1 什么是样本不均衡

样本不均衡就是不同的样本比例差异巨大,比如猫狗图片识别,其中猫图片100张,狗图片9900张,此时狗的照片数量是猫的100倍,可以视为一个样本不均衡案例。实际上一般类别没有在1:1左右的情况下就可以认为是样本不均衡了。

3.2 样本不均衡会带来什么问题

如果是在机器学习的过程中,在我们不对其进行处理的情况下,由于机器学习是以最小化损失函数为趋向的,在类别差异比较大的话,会倾向于预测为类别占比比较大的类别,比如我构造了一个分类器,所有的样本都预测为狗,那么它的准确率有0.99(9900/10000),这真的是因为分类器学习到了类别数据的分布么?答案不置可否。

3.3 对于样本不均衡有哪些处理方法

意识到样本不均衡带来的问题后,就需要去解决它了。

1.上采样法

将比较少的样本随机抽样,再将抽样后的样本放至到该类别样本中。重复这一过程,直到你要的比例为止。可能你定义猫狗的样本必须为1:10甚至是1:1,那么最终样本比例构成就算猫:狗 = 990:9900,9900:9900。当然这么做有一个很明显的缺点,就是把比较少的样本重复复制了多次,如果样本内特征过少可能导致过拟合。除了选择复制多次,你也可以在此基础上进行数据增强等。

2.下采样法

只提取比较多的样本中的一部分样本,比如最后猫狗样本就为100:100了。这么做的缺点也很明显,损失了很多数据,进而损失了很多信息,有可能导致拟合不足。提取方式也是多种多样,比如第二篇文章中有提到可以采用随机抽样的方式,也可以采用迭代预分类的方法:具体原理如下:在第一个模型使用全部100个猫样本和100个狗样本,对剩余的狗样本进行预测,对预测错误的狗样本再进行抽100个,加入原先的200个样本中继续训练预测。如此迭代直至所有剩余的狗样本预测正确为止。但不管是随机还是迭代预分类都不能保证,最后的狗部分数据就是最精简的能代表的狗的数据。

3.修改损失权重

把损失函数的类别权重修改一下,比如预测猫错误的话损失是狗的100倍,由于机器学习是以最小化损失函数为目的的,那么此时分类器错判猫的话损失会非常大,因而分类器会比较重视猫的数据的部分。也可以在此基础上增加样本的难易程度系数,还可以增加样本的异常点,这部分在第二篇参考博文中写的很好,感兴趣的朋友可以跳转过去看下。

新问题

1.样本不均衡不会导致模型只学习到类别比较少的数据,从而也实现较好的分类效能

这部分来自于看到部分实验结果即便训练集数据呈现出较大的样本不均衡,但是验证、测试集效果良好

2.我对样本进行上采样,怎么就容易过拟合了

你可能感兴趣的:(人工智能,python)