机器学习性能评价指标准确率, 召回率,F1, ROC ,AUC

假设我们做一个诈骗监测模型:

诈骗检测模型的输出是交易欺诈的概率[0.0–1.0]。 如果此概率低于0.5,则将交易分类为非欺诈; 否则,您将交易分类为欺诈。

为了评估模型的性能,您收集了10,000个手动分类的交易,其中有300个欺诈交易和9,700个非欺诈交易。 您在每个事务上运行分类器,预测类标签(欺诈或非欺诈),并在以下混淆矩阵中总结结果:

在这里插入图片描述

True Positive(TP = 100)是模型正确预测阳性类别的结果。 类似地,True Negative(TN = 9,000)是模型正确预测负面类别的结果。

False Positive(FP = 700)是模型错误地预测肯定类别的结果。 假阴性(FN = 200)是模型错误地预测阴性类别的结果。

那么我们自己预测的正确百分比是多少,可以计算出准确性(Accuracy):
在这里插入图片描述

我们会注意到300笔欺诈交易中,只有100笔欺诈交易被正确分类。 您的分类者错过了300笔欺诈交易中的200笔!

那么我们有没有更好的分类器,让我们预测每笔交易都是非欺诈性的(负),准确率高达97%!
在这里插入图片描述

您了解到这样的困难,即准确性可能会产生误导,并且对于此类问题,需要采取其他措施来评估您的分类器。

您首先要问自己,您发现阳性(欺诈)案件的百分比是多少? 您回到混淆矩阵,然后将“True positive”(TP-蓝色椭圆形)除以真实欺诈交易的总数(红色矩形)从而得到召回率(Recall)

在这里插入图片描述

因此,分类器捕获了33.3%的欺诈性交易。

接下来,您问自己:Positive(欺诈)预测的正确率是多少? 您回到混淆矩阵,然后将“True Positive”(TP-蓝色椭圆形)除以预测的欺诈性交易的总数(红色矩形)。
在这里插入图片描述

因此,现在您知道,当分类器预测交易是欺诈性的时,分类器正确的时间只有12.5%。

F1得分将召回率和精确度结合到一个性能指标中。 F1得分是“精确度”和“召回率”的加权平均值。 因此,该分数同时考虑了误报和误报。 F1通常比Accuracy更有用,尤其是在类分布不均匀的情况下。

在这里插入图片描述

ROC(接收机工作特性)

由于Precision和Recall经常处于紧张状态。也就是说,提高精度通常会降低召回率,反之亦然。
在所有可能的阈值上汇总的分类器的总体性能由接收器工作特性(ROC)曲线给出。 “ ROC”这个名称是历史悠久的,源于传播理论。 ROC曲线用于查看分类器将正例和负例分开的程度,并确定将其分开的最佳阈值。

为了能够使用ROC曲线,您的分类器应该能够对示例进行排名,以使排名较高的示例更有可能是Positive的。例如,逻辑回归输出概率,这是可用于排名的分数。

下面训练了一个新模型,并用它来预测10个新测试事务的结果,并将结果汇​​总在下表中:对于非欺诈性事务,中间列(“True标签”)的值为零(0)或中间列为(1)对于欺诈性交易,最后一栏(Fraudulent Prob)是交易欺诈性的可能性:
在这里插入图片描述

首先我们设置阈值为0.5:
在这里插入图片描述
当然我们也可以修改阈值来更佳精确:
例如,您可以降低阈值并将任何概率低于0.1的交易标记为非欺诈类,从而捕获先前错过的两个欺诈性交易。
在这里插入图片描述

要导出ROC曲线,您需要将阈值设置为1.0,然后计算欺诈率(Proudulent Prob)小于1.0的每笔交易被归类为欺诈性(0)。 当阈值为1.0时,“ T = 1.0”列显示预测的类别标签:
在这里插入图片描述
Threshold = 1.0情况的混淆矩阵:
在这里插入图片描述
通过在各种阈值设置下将正阳性率(TPR)与误阳性率(FPR)相对绘制来创建ROC曲线,因此您可以计算以下两者:
在这里插入图片描述

现在,我们终于可以在ROC图上绘制第一个点了! 随机猜测会沿从左下角到右上角的虚线对角线(所谓的无区别线)给出一个点。
在这里插入图片描述
现在,您将阈值降低到0.9,然后重新计算FPR和TPR:
在这里插入图片描述
在这里插入图片描述
最后我们可以得到我们ROC曲线:
在这里插入图片描述

AUC(曲线下面积)
通过查看ROC曲线(或AUC)下的面积来确定模型的性能。 出色的模型的AUC接近1.0,这意味着它具有很好的可分离性度量。 对于您的模型,AUC是蓝色,绿色和紫色矩形的组合,因此AUC = 0.4 x 0.6 + 0.2 x 0.8 + 0.4 x 1.0 = 0.80。

在这里插入图片描述
结论:

准确性并非总是度量标准。

精确度和召回率通常处于紧张状态。 也就是说,提高精度通常会减少召回率,反之亦然。
AUC-ROC曲线是评估机器学习算法性能的最常用指标之一。

ROC曲线总结了使用不同概率阈值的预测模型在真阳性率和假阳性率之间的权衡。

ROC曲线可用于选择最佳工作点(阈值)。