对于PRC和ROC曲线衡量分类器效果的思考

我们在分类中往往采用一些指标如Precision,Recall,ROC图来衡量一个分类器的分类效果。


在实际中遇到的数据往往是正负样本不平衡(class imbalance)的,比如假设100个人里面有1个是癌症患者,那么,分类器只要对所有样本返回非癌症即可获得99%的Accuracy,然而此时的分类器并没有意义,它不能识别任何的癌症患者。此时我们需要Precision,Recall,调和F值,ROC等来衡量分类器的效果。


我们的问题是:在正负样本比例不平衡时,PRCurve和ROCCurve哪个更能衡量分类器的效果?


在进行不平衡数据学习时,我们往往把少数量的样本标记成正样本(positive),然后进行样本的学习和预估。

PRC和ROC在面对不平衡数据时的表现是不同的。在数据不平衡时,PRC曲线是敏感的,随着正负样本比例的变化,PRC会发生强烈的变化。而ROC曲线是不敏感的,其曲线能够基本保持不变。ROC的面对不平衡数据的一致性表明其能够衡量一个模型本身的预测能力,而这个预测能力是与样本正负比例无关的。但是这个不敏感的特性使得其较难以看出一个模型在面临样本比例变化时模型的预测情况。而PRC因为对样本比例敏感,因此能够看出分类器随着样本比例变化的效果,而实际中的数据又是不平衡的,这样有助于了解分类器实际的效果和作用,也能够以此进行模型的改进。

综上,在实际学习中,我们可以使用ROC来判断两个分类器的优良,然后进行分类器的选择,然后可以根据PRC表现出来的结果衡量一个分类器面对不平衡数据进行分类时的能力,从而进行模型的改进和优化。

# 这个是我学不平衡问题时对这个问题的一点理解,如果有不对的地方,敬请指出。


----------------------------------------------------------

补充一些不平衡数据学习时对应解决方法。

一、使用ROC、PRC曲线来衡量分类器的效果

二、数据采样法

1. 过采样:通过增加少数样本来提高少数类别的分类性能。

2. 欠采样:通过减少多数样本来提高少数类别的分类性能。

三、使用代价敏感学习

对于分类混淆矩阵,对不同的分类效果可以赋予不同的权值。

对于AdaBoost,可以基于代价函数来调整错误样本权重向量D(原先是依据上一个分类器的错误率)。

对于NaiveBayes,可以选择具有最小期望代价而不是最大概率的类别作为最后的结果。



猜你喜欢

转载自blog.csdn.net/whiterbear/article/details/52005545