不平衡类问题(稀有类检测)的评估与改善方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lyxleft/article/details/84580098

目录

一、可选度量

二、ROC曲线

三、代价敏感学习

四、基于抽样的方法


不平衡类问题常常出现,特别是异常检测领域。某一类样本很多,某一类样本很少。我们针对这类问题设计了一些评估或改善的方法,使得结果更加令人满意。

本文讲的是一般性的机器学习、数据处理领域的不平衡类问题。在深度学习中如果遇到不平衡问题,也可触类旁通。参见《干货 | 深度学习中不均衡数据集的处理

一、可选度量

这个在上一篇博文中讨论到了,不平衡类问题如何选择合适的结果评估的度量,让你的论文瞬间高大上起来,不能只用傻乎乎的准确率哦!《机器学习/数据处理领域结果的评估度量——召回率、精度、F1score等的由来》。先看下这篇博文,否则下面有些术语缩写你可能看不懂哦。

二、ROC曲线

接受者操作特征(receiver operating characteristic, ROC)曲线是显示分类器真正率TPR和假正率FPR的折中的一种图形化方法。在一个ROC曲线中,TPR沿着y轴绘制,FPR在x轴,曲线上每个点可以描述一个分类器模型。TPR=1,FPR=0是我们理想的模型。即一个好的分类模型应该尽可能靠近图的左上角

ROC曲线采取了可视化的方法,直观地帮助我们比较不同分类器的相对性能

ROC曲线下方的面积(AUC)提供了模型平均性能的一种方法。如模型是完美的,AUC=1。如果是简单的随机猜测,AUC=0.5。如果一个模型更好,那么它的AUC更大。

三、代价敏感学习

代价矩阵对将一个类错分到另一个类的惩罚进行编码。下式表示了对模型M的总代价:

C(+,-)表示把一个+类预测为-类的代价。误分类的代价都是正值。代价矩阵中可以用负项表示对正确分类的奖励

我们简化来看。在0-1分类问题中,C(+,+)=0,C(-,-)=0,C(+,-)=1,C(-,+)=1,所以总代价等于误分类的数目。

然后我们有很多方法将代价信息引入到算法中。例如借助代价信息决定决策树是否剪枝、处理数据权值使得算法收敛到代价最低的状态等等。

四、基于抽样的方法

主要思想是改变实例的分布,帮助稀有类在训练集中更好地表示。

包括不充分抽样(undersampling)、过分抽样(oversampling)和两种方法混合使用。

举个例子,现在有100个+,1000个-样本。

不充分抽样情况下,从-样本中抽取出100个-样本,与所有+样本形成一个训练集。这里,+,-就平衡了。所以不充分抽样实际上就是降采样。这里有个潜在的问题,就是其他900个-样本我们就不要了吗?那岂不是很浪费?所以我们可以多次进行不充分抽样,并归纳类似于组合学习方法的多分类器。也可以使用聚焦的不充分抽样(focused undersampling),此时抽样程序可以精明地确定该被排除的负样本。

过分抽样即复制样本,直到+,-样本一样多。然而,过分抽样可能导致模型过拟合!我们在另一篇文章《模型过拟合及模型泛化误差评估》中提到,噪声是导致过拟合的一个原因。噪声随着过分抽样也可以被复制多次!实际上,过分抽样没有向训练集中添加任何新的信息,对正样本进行复制我们只是为了阻止学习算法向多数类倾斜。不过,过分抽样也可以在已有正样本的领域中产生新的正样本来实现。比如,首先确定每一个已有+样本的k-最近邻,然后在连接正样本和一个k-最近邻的线段上的某个随机点产生一个新样本,重复该过程直到数量令你满意。这样的方法可以向外扩展+样本的决策边界,但是仍然不可避免过拟合的影响。

混合方法使用二者的组合,对多数类进行不充分抽样,对少数类进行过分抽样,从而均匀类分布。

 

 

 

展开阅读全文

没有更多推荐了,返回首页