机器学习中分类任务的性能度量

性能度量

对于我们构建的模型的泛化能力进行评估,不仅我们需要有效可行的实验评估方法,还需要有衡量模型泛化能力的评价标准,就是性能度量(performance measure)

在对比不同模型的效果时,使用不同的性能度量往往会有不同的评判结果,即意味着模型的“好坏”是相对的,怎么样去使用对应的性能度量标准,还需要根据任务需求

回归(classification)任务的常用的性能度量

相关引入

我们以一个二分类问题为例,数据集中的类别称为正例反例
可将原数据集表示的真实类别模型预测出的类别的组合划分为:

  • 真正例TP(true postive):正例被预测正确的个数(正确预测)
  • 假正例FP(false postive):负例被预测错误的个数(错误预测)
  • 真反例TN(true negative):负例被预测正确的个数(正确预测)
  • 假反例FN(false negative):正例被预测错误的个数(错误预测)

以上的组合即反映了所有预测情况,所以可知TP+FP+TN+FN=分类结果总数
用混淆矩阵表示则为:

机器学习中分类任务的性能度量
 
 
 

准确率(Accuracy)

分类正确的样本数 与 样本总数之比
Accuracy=TP+TNTP+FP+TN+FNAccuracy=\frac{TP+TN}{TP+FP+TN+FN}

查准率、精确率(Precision)

正例被模型预测为正例的总数/被预测为正例的总数
Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}

以周志华《机器学习》为例,查准率即是好的西瓜被预测正确数量/被模型预测好瓜的数量

查全率、召回率(Recall)

正例被模型预测为正例的总数 与 原本正例的总数
Recall=TPTP+FNRecall=\frac{TP}{TP+FN}
以周志华《机器学习》为例,查全率即是好的西瓜被预测正确数量/好瓜的数量

 

查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
例如:如果希望将好西瓜尽可能地选出来,则可以通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么这样查准率就会较低;
若希望选出的瓜中好瓜的比例尽可能高,则选有把握的瓜,那样就会漏掉一些好瓜,这样查全率就会较低。

因此根据查准率和查全率,有了查准率-查全率曲线,又称为P-R曲线

P-R曲线

P-R曲线直观地显示出模型在总体上的查全率、查准率。
当有多个模型时,我们可以在将多个模型的P-R曲线画在一起,若一个模型被另一个模型完全包住,则可说明后者模型优于前者。
机器学习中分类任务的性能度量
可以看到,在查全率在80% 左右的时候,查准率急剧下降。你可能会想选择在急剧下降之前选择出一个准确率/召回率平衡点。比如说,在召回率60%左右的点。当然,这取决于需求。

F1值

为了能够评价不同算法的优劣,所以综合考虑它们,在Precision和Recall的基础上提出了F1值的概念,来对Precision和Recall进行整体评价。
F1的定义如下: F1值 = 2*查准率 * 查全率 / (查准率 + 查全率)
F1=2precisionrecallprecision+recallF1=2*\frac{precision*recall}{precision+recall}

ROC与AUC

受试者工作特征(ROC)曲线是另一个二分类器常用的工具。
它与P-R曲线很相似,但不是画出查准率对查全率的曲线,
ROC曲线是真正例率(True Positive Rate,TPR,也是查全率)对假正例率(False Positive Rate, FPR)的曲线。
TPR=TPTP+FNTPR=\frac{TP}{TP+FN}
FPR=FPTN+FPFPR=\frac{FP}{TN+FP}
ROC曲线横坐标为假正例率,纵坐标为真正例率,曲线图如下:
机器学习中分类任务的性能度量
如果两个模型画在ROC曲线图上,应该如何去评价两者的性能,此时如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC曲线下的面积(Area Under Roc Curve)
从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得,