如何选择分类模型的评价指标

2021年09月15日 阅读数:1
这篇文章主要向大家介绍如何选择分类模型的评价指标,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

简介
机器学习

如何选择分类模型的评价指标_分类模型

你已经成功地构建了分类模型。你如今该怎么办?你如何评估模型的性能,也就是模型在预测结果方面的表现。为了回答这些问题,让咱们经过一个简单的案例研究了解在评估分类模型时使用的度量。ide

让咱们经过案例研究深刻了解概念

在这个全球化的时代,人们常常从一个地方旅行到另外一个地方。因为乘客排队等候、办理登机手续、拜访食品供应商以及使用卫生间等设施,机场可能会带来风险。在机场追踪携带病毒的乘客有助于防止病毒的传播。工具

如何选择分类模型的评价指标_分类模型_02

考虑一下,咱们有一个机器学习模型,将乘客分为COVID阳性和阴性。在进行分类预测时,可能会出现四种类型的结果:性能

真正例(TP):当你预测一个观察值属于一个类,而它实际上属于那个类。在这种状况下,也就是预测为COVID阳性而且实际上也是阳性的乘客。学习

如何选择分类模型的评价指标_分类模型_03

真反例(TN):当你预测一个观察不属于一个类,它实际上也不属于那个类。在这种状况下,也就是预测为非COVID阳性(阴性)而且实际上不是COVID阳性(阴性)的乘客。3d

如何选择分类模型的评价指标_分类模型_04

假正例(FalsePositive,FP):当你预测一个观察值属于某个类,而实际上它并不属于该类时。在这种状况下,也就是预测为COVID阳性但实际上不是COVID阳性(阴性)的乘客。blog

如何选择分类模型的评价指标_分类模型_05

假反例(FN):当你预测一个观察不属于一个类,而它实际上属于那个类。在这种状况下,也就是预测为非COVID阳性(阴性)而且其实是COVID阳性的乘客。ci

如何选择分类模型的评价指标_分类模型_06

混淆矩阵

为了更好地可视化模型的性能,这四个结果被绘制在混淆矩阵上。it

如何选择分类模型的评价指标_分类模型_07

准确度

对!你说得对,咱们但愿咱们的模型能集中在真正的正例和反例。准确度是一个指标,它给出了咱们的模型正确预测的分数。形式上,准确度有如下定义:io

准确度=正确预测数/预测总数。

如何选择分类模型的评价指标_分类模型_08

如今,让咱们考虑平均天天有50000名乘客出行。其中有10个是COVID阳性。

提升准确率的一个简单方法是将每一个乘客都归为COVID阴性。因此咱们的混淆矩阵以下:

如何选择分类模型的评价指标_分类模型_09

本案例的准确度为:

准确度=49990/50000=0.9998或99.98%

如何选择分类模型的评价指标_分类模型_10

神奇!!这是正确的?那么,这真的解决了咱们正确分类COVID阳性乘客的目的吗?

对于这个特殊的例子,咱们试图将乘客标记为COVID阳性和阴性,但愿可以识别出正确的乘客,我能够经过简单地将每一个人标记为COVID阴性来得到99.98%的准确率。

显然,这是一种比咱们在任何模型中见过的更精确的方法。但这并不能解决目的。这里的目的是识别COVID阳性的乘客。在这种状况下,准确度是一个可怕的衡量标准,由于它很容易得到很是好的准确度,但这不是咱们感兴趣的。

因此在这种状况下,准确度并非评估模型的好方法。让咱们来看看一个很是流行的措施,叫作召回率。

召回率(敏感度或真正例率)

召回率给出你正确识别为阳性的分数。

如何选择分类模型的评价指标_分类模型_11

如今,这是一项重要措施。在全部阳性的乘客中,你正确识别的分数是多少。回到咱们之前的策略,把每一个乘客都标为阴性,这样召回率为零。

Recall = 0/10 = 0

所以,在这种状况下,召回率是一个很好的衡量标准。它说,把每一个乘客都认定为COVID阴性的可怕策略致使了零召回率。咱们想最大限度地提升召回率。

如何选择分类模型的评价指标_分类模型_12

如何选择分类模型的评价指标_分类模型_13

做为对上述每一个问题的另外一个正面回答,请考虑COVID的每个问题。每一个人走进机场,模型都会给他们贴上阳性标签。给每位乘客贴上阳性标签是很差的,由于在他们登机前,实际调查每一位乘客所需的费用是巨大的。

混淆矩阵以下:

如何选择分类模型的评价指标_分类模型_14

召回率将是:

Recall = 10/(10+0) = 1

这是个大问题。所以,结论是,准确度是个坏主意,由于给每一个人贴上负面标签能够提升准确度,但但愿召回率在这种状况下是一个很好的衡量标准,但后来意识到,给每一个人贴上正面标签也会增长召回率。

因此独立的召回率并非一个好的衡量标准。

还有一种测量方法叫作精确度

精确度

精确度给出了全部预测为阳性结果中正确识别为阳性的分数。

如何选择分类模型的评价指标_分类模型_15

考虑到咱们的第二个错误策略,即将每位乘客标记为阳性,其精确度将为:

Precision = 10 / (10 + 49990) = 0.0002

虽然这个错误的策略有一个好的召回值1,但它有一个可怕的精确度值0.0002。

这说明单纯的召回并非一个好的衡量标准,咱们须要考虑精确度。

考虑到另外一种状况(这将是最后一种状况,我保证:P)将排名靠前的乘客标记为COVID阳性,即标记出患COVID的可能性最高的乘客。假设咱们只有一个这样的乘客。这种状况下的混淆矩阵为:

如何选择分类模型的评价指标_分类模型_16

精确度为:1/(1+0)=1

在这种状况下,精度值很好,可是让咱们检查一下召回率:

Recall = 1 / (1 + 9) = 0.1

在这种状况下,精度值很好,但召回值较低。

场景 准确度 召回率 精确度
将全部乘客分类为阴性
将全部乘客分类为阳性
排名靠前的乘客标记为COVID阳性

在某些状况下,咱们很是肯定咱们想要最大限度地提升召回率或精确性,而代价是其余人。在这个标记乘客的案例中,咱们真的但愿能正确地预测COVID阳性的乘客,由于不预测乘客的正确性是很是昂贵的,由于容许COVID阳性的人经过会致使传播的增长。因此咱们更感兴趣的是召回率。

不幸的是,你不能二者兼得:提升精确度会下降召回率,反之亦然。这称为准确度/召回率权衡。

准确度/召回率权衡

一些分类模型输出的几率介于0和1之间。在咱们将乘客分为COVID阳性和阴性的案例中,咱们但愿避免遗漏阳性的实际案例。特别是,若是一个乘客确实是阳性的,但咱们的模型没法识别它,这将是很是糟糕的,由于病毒颇有可能经过容许这些乘客登机而传播。因此,即便有一点怀疑有COVID,咱们也要贴上阳性的标签。

因此咱们的策略是,若是输出几率大于0.3,咱们将它们标记为COVID阳性。

如何选择分类模型的评价指标_分类模型_17

这会致使较高的召回率和较低的精确度。

考虑与此相反的状况,当咱们肯定乘客为阳性时,咱们但愿将乘客分类为阳性。咱们将几率阈值设置为0.9,即当几率大于或等于0.9时,将乘客分类为正,不然为负。

因此通常来讲,对于大多数分类器来讲,当你改变几率阈值时,会在召回率和精确度之间进行权衡。

如何选择分类模型的评价指标_分类模型_18

若是须要比较具备不一样精确召回值的不一样型号,一般能够方便地将精度和召回合并为一个度量。对的!!咱们须要一个同时考虑召回率和精确度的指标来计算性能。

F1分数

它被定义为模型精度和召回率的调和平均值。

如何选择分类模型的评价指标_分类模型_19

你必定想知道为何调和平均而不是简单平均?咱们使用调和平均值是由于它对很是大的值不敏感,不像简单的平均值。

比方说,咱们有一个精度为1的模型,召回率为0给出了一个简单的平均值为0.5,F1分数为0。若是其中一个参数很低,第二个参数在F1分数中就再也不重要了。F1分数倾向于具备类似精确度和召回率的分类器。

所以,若是你想在精确度和召回率之间寻求平衡,F1分数是一个更好的衡量标准。

ROC/AUC曲线

ROC是另外一种经常使用的评估工具。它给出了模型在0到1之间每个可能的决策点的敏感性和特异性。对于具备几率输出的分类问题,阈值能够将几率输出转换为分类。因此经过改变阈值,能够改变混淆矩阵中的一些数字。但这里最重要的问题是,如何找到合适的阈值?

对于每一个可能的阈值,ROC曲线绘制假正例率与真正例率。

假正例率:被错误分类为正例的反例实例的比例。

真正例率:正确预测为正例的正例实例的比例。

如今,考虑一个低阈值。所以,在全部按升序排列的几率中,低于0.1的被认为是负的,高于0.1的都被认为是正的。选择阈值是自由的

如何选择分类模型的评价指标_分类模型_20

可是若是你把你的门槛设得很高,好比0.9。

如何选择分类模型的评价指标_分类模型_21

如下是同一模型在不一样阈值下的ROC曲线。

如何选择分类模型的评价指标_分类模型_22

从上图能够看出,真正例率以更高的速率增长,但在某个阈值处,TPR开始逐渐减少。每增长一次TPR,咱们就要付出代价—FPR的增长。在初始阶段,TPR的增长高于FPR

所以,咱们能够选择TPR高而FPR低的阈值。

如今,让咱们看看TPR和FPR的不一样值告诉了咱们关于这个模型的什么。

如何选择分类模型的评价指标_分类模型_23

对于不一样的模型,咱们会有不一样的ROC曲线。如今,如何比较不一样的模型?从上面的曲线图能够看出,曲线在上面表明模型是好的。比较分类器的一种方法是测量ROC曲线下的面积。

如何选择分类模型的评价指标_分类模型_24

AUC(模型1)>AUC(模型2)>AUC(模型2)

所以模型1是最好的。

总结

咱们了解了用于评估分类模型的不一样度量。什么时候使用哪些指标主要取决于问题的性质。因此如今回到你的模型,问问本身你想要解决的主要目的是什么,选择正确的指标,并评估你的模型。