ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,对于多分类器不适用。
一、混淆矩阵
理解AUC和ROC曲线之前,应该先清楚什么是混淆矩阵,混淆矩阵如下图所示:
图一混淆矩阵由此引出True Positive Rate(真阳率)、False Positive(伪阳率)两个概念:
真阳率 伪阳率TPRate的意义是所有真实类别为1的样本中,预测类别为1的比例。
FPRate的意义是所有真是类别为0的样本中,预测类别为1的比例。
二、如何画ROC曲线
对于一个特定的分类器和测试数据集,只能得到一个分类结果,即一组FPR和TPR结果,而要得到一条ROC曲线,我们实际上需要一系列FPRate和TPRate的值,那该怎么办呢?下面以一个实列来详细说明:
对于LR等预测类别为概率的分类器,假设预测结果如下:
图二 LR 分类器预测结果我们从高到低,依次将预测值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,认为它为正样本,否则为负样本。举例来说,当阈值取0.9时,正样本为1,其余为负样本,当阈值取0.8时,正样本为1,2。其余以此类推。每次选取一个不同的threshold,我们就可以得到一组FPRate和TPRate,即ROC曲线上的一点。threshold取值越多,ROC曲线越平滑。
AUC(Area Under Curve)被定义为ROC曲线下的面积,这个面积的数值不会大于1。ROC曲线一般都处于y=x这条直线的上方,AUC的取值范围在0.5和1之间。
AUC值的意义?
AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类器根据计算得到的预测值将这个正样本排在负样本前面的概率就是AUC值。AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。
为什么使用ROC曲线?
测试集中的正负样本分布不均衡时的评价指标。
参考文献:ROC和AUC介绍以及如何计算AUC
网友评论