放荡的人生|分类器性能评判标准(Recall、P-R、F1、ROC等)你是否真的懂了?

前言在机器学习算法中 , 在模型训练出来之后 , 总会去寻找衡量模型性能的指标 。 评价指标是针对将相同的数据 , 使用不同的算法模型 , 或者输入不同参数的同一种算法模型 , 而给出这个算法或者参数好坏的定量指标 。 在模型评估过程中 , 往往需要使用多种不同的指标协作评估一个模型的好坏 , 因为众多的评价指标中 , 大部分指标只能片面的反应模型的一部分特点 , 那么对模型的评估就会比较片面 , 在算法落地后也会出现很多问题 。 根据评估指标的反馈进行模型调整 , 这些都是机器学习在模型评估阶段的关键问题 , 也是一名合格的算法工程师应当具备的基本功[文献1] 。
本文参考文献1,2 , 详细介绍机器学习分类任务的常用评价指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、P-R曲线(Precision-RecallCurve)、F1Score、混淆矩阵(ConfuseMatrix)、ROC、AUC 。
1准确率(Accuracy)准确率定义如下:
真正例(TruePositive,TP):标注的数据为正样本 , 被模型预测为正的正样本;假正例(FalsePositive,FP):标注的数据为负样本 , 被模型预测为正的负样本;假负例(FalseNegative,FN):标注的数据为负样本 , 被模型预测为负的正样本;真负例(TrueNegative,TN):标注的数据为正样本 , 被模型预测为负的负样本;准确率是分类问题中最简单也是最直观的评价指标 , 但存在明显的缺陷 , 就是在数据的类别不均衡 , 特别是一种类别数据特别多另一种类别数据特别少的情况下 , 准确率就不能客观评价算法的优劣了 。 举个例子:当负样本占99%时 , 分类器把所有样本都预测为负样本 , 那么对于这个模型来说可以获得99%的准确率 , 所以在样本数据极度不均衡的时候 , 选用这种方式去评价一个模型是不可取的 。
2精确率(Precision)精准率又叫查准率 , 容易与准确率弄混 , 请记住这个“精”字 , 它是针对一个类别预测结果而言的 , 含义是在所有被预测为正的样本中实际为正的样本的概率 , 在预测为正样本的结果中 , 有多少把握可以预测正确 , 因为其他类别的数据也可能被预测成为该类别 。 以二分类(以下不特殊说明 , 都以二分类为例介绍)来说其公式如下:
3召回率(Recall)召回率又叫查全率 , 它是针对原样本而言的 , 即在实际为正的样本中被预测为正样本的概率 , 其公式如下: