全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1023 0
2020-12-22
如何为分类模型选择评估指标
好极了!!因此,您已经成功建立了分类模型。您现在应该怎么办?您如何评估模型的性能,即模型在预测结果方面的表现如何。为了回答这些问题,让我们通过一个简单的案例研究来了解用于评估分类模型的指标。
通过案例研究深入探讨概念
在这些COVID时代,人们经常从一个地方旅行到另一个地方。由于旅客在排队等候,办理登机手续,拜访食品供应商以及使用浴室等设施,机场可能会有风险。在机场跟踪COVID阳性乘客可以帮助防止病毒传播。
评估指标
考虑一下,我们有一个机器学习模型将乘客分为COVID正负。执行分类预测时,可能会发生四种类型的结果:
真实肯定(TP):当您预测观察值属于某个类别,并且实际上确实属于该类别时。在这种情况下,被分类为COVID阳性并且实际上是阳性的乘客。
评估指标图1 –真正
真实负数(TN):当您预测观察值不属于某个类别,并且实际上不属于该类别时。在这种情况下,被分类为非COVID阳性(阴性)但实际上不是COVID阳性(阴性)的乘客。
评估指标图2 –真负
误报(FP):当您预测观察值属于某个类别,而实际上却不属于该类别时。在这种情况下,被分类为COVID阳性但实际上不是COVID阳性(阴性)的乘客。
评估指标图3 –误报
假否定(FN):当您预测观察值不属于某个类别,而实际上确实属于该类别时。在这种情况下,被分类为不是COVID阳性(阴性)并且实际上是COVID阳性的乘客。
图4 –假阴性
混淆矩阵
为了更好地可视化模型的性能,将这四个结果绘制在混淆矩阵上。
评估指标图5混淆矩阵
准确性
是! 您说对了,我们希望我们的模型专注于“真正”和“真负”。准确性是一种度量标准,可提供我们的模型正确的预测分数。形式上,准确性具有以下定义:
准确性=正确的预测数/预测总数。
评估指标图-6
现在,让我们考虑平均每天有50
一种提高准确性的简便方法是将每位乘客分类为COVID阴性。因此,我们的混淆矩阵如下所示:
评估指标
这种情况下的准确性为:
准确度= 49
评估指标
令人印象深刻!对?好吧,这真的可以解决我们正确分类COVID阳性乘客的目的吗?
对于这个特殊的示例,我们试图将乘客分别标记为COVID阳性和阴性,希望能够确定正确的乘客,我只需将每个人标记为COVID阴性,就可以达到99.98%的准确度。显然,这比我们在任何模型中都能看到的精度更高。但这并不能解决目的。此处的目的是识别COVID阳性乘客。在这种情况下,未将10标记为实际阳性会贵得多。在这种情况下,精度是一个很糟糕的指标,因为它很容易获得非常好的精度,但这不是我们感兴趣的。
因此,在这种情况下,准确性不是评估模型的好方法。让我们看一下一种非常流行的方法,叫做Recall。
召回率(灵敏度或真阳性率)
召回给出所有正数中正确识别为正数的分数。
现在,这是一项重要措施。在所有积极乘客中,您正确识别出的比例是多少。回到我们之前将每位乘客标记为负数的策略,这将使召回率为零。
召回率= 0/10 = 0
因此,在这种情况下,召回是一个很好的措施。它说,将每个乘客识别为COVID阴性的可怕策略导致零召回。我们希望最大程度地提高召回率。
要回答上述问题,请考虑将每位乘客标记为COVID阳性的另一种情况。每个人都走进机场,而该模型只是将其标记为正面。就需要在每位乘客登机前实际调查每位乘客的成本方面而言,将每位乘客标记为“积极”是不好的。
混淆矩阵如下所示:
回想一下这种情况:
召回率= 10 /(10 + 0)= 1
那是个大问题。因此,得出结论,准确率不是一个好主意,因为将所有人标记为否定可以提高准确性,但是希望在这种情况下召回率是一个很好的衡量标准,但随后意识到将所有人标记为肯定率也会提高召回率。
因此,独立召回并不是一个好的措施。
还有另一种方法称为“精度”
精确
精度给出了正确地识别为正的部分,占所有预测为正的部分。
考虑到我们将每位乘客都标记为阳性的第二种不良策略,精度为:
精度= 10 /(10 + 49990)= 0.0002
尽管此错误策略的召回率很好,但值为1,但其精确度却高达0.0002。
这说明,仅召回并不是一个好的措施,我们需要考虑精度值。
考虑另一种情况(我保证,这将是最后一个例子:P),即将最高乘客标记为COVID阳性,这将标记出具有COVID可能性最高的乘客。假设我们只有一位这样的乘客。在这种情况下,混淆矩阵将是:
精度为:1 /(1 + 0)= 1
在这种情况下,精度值是好的,但是让我们检查一次召回值:
召回率= 1 /(1 + 9)= 0.1
在这种情况下,精度值不错,但召回值很低。
情境准确性召回精确
将所有乘客归类为–ve高低低
将所有乘客归类为正面低高低
用最大分类乘客 概率为正高低低
在某些情况下,我们非常确定要以其他为代价来最大化查全率或准确性。就像在给乘客贴标签的情况下一样,我们真的希望对COVID阳性乘客进行正确的预测,因为不预测乘客的权利确实很昂贵,因为允许COVID阳性人员继续前进会导致价差增加。因此,我们对这里的召回更加感兴趣。
不幸的是,您不能同时兼顾:提高精度会降低召回率,反之亦然。这称为精度/调用权衡。
精确调用权衡   
一些分类模型输出的概率在0到1之间。在我们将乘客分类为COVID正值和负值的情况下,我们要避免遗漏正值的实际情况。特别是,如果一名乘客实际上是积极的,但我们的模型无法识别出这种情况,那将是非常糟糕的,因为通过允许这些乘客登机,病毒传播的可能性很高。因此,即使有人怀疑拥有COVID,也不能冒将乘客标记为负面的风险。
因此,我们以这样的方式制定策略:如果输出概率大于0.3,则将其标记为COVID正。
这导致较高的召回率和较低的精度。
考虑相反的情况,当我们确定乘客是肯定的时,我们希望将乘客分类为肯定。我们将概率阈值设置为0.9,当概率大于或等于0.9时将乘客分类为正,否则将其归为负。
因此,通常对于大多数分类器,当您更改概率阈值时,将在召回率和精度之间进行权衡。
如果需要比较具有不同精度召回值的不同模型,通常可以将精度和召回合并为一个度量标准。正确!!我们需要一个考虑召回率和精度的指标来计算性能。
F1分数
它定义为模型精度和召回率的谐波均值。
您一定想知道为什么谐波平均值而不是简单平均值?您正朝着正确的方向前进。
我们使用谐波均值,因为与简单的平均值不同,它对极大的值不敏感。假设我们有一个精度为1的模型,召回率0给出的简单平均值为0.5,F1得分为0。如果其中一个参数较低,则第二个参数对F1得分不再重要。F1分数偏向于具有相似精度和召回率的分类器。因此,如果您要在Precision和Recall之间寻求平衡,则F1分数是更好的选择。
ROC / AUC曲线
接收者操作员特征是用于评估的另一种常用工具。它为模型在0和1之间的每个可能的决策规则临界值绘制了灵敏度和特异性。对于具有概率输出的分类问题,阈值可以将概率输出转换为分类。我们可以稍微控制混乱矩阵。因此,通过更改阈值,可以更改混淆矩阵中的某些数字。但是,这里最重要的问题是,如何找到正确的阈值?当然,我们不想每次更改阈值时都查看混淆矩阵,因此使用了ROC曲线。
对于每个可能的阈值,ROC曲线都会绘制假阳性率与真实阳性率的关系。
误报率:错误分类为正数的否定实例的分数。
真实阳性率:正确预测为阳性的阳性实例的分数。
现在,考虑降低阈值。因此,在所有按升序排列的概率中,低于不良的所有事物都被视为负,而高于0.1的所有事物都被视为正。通过选择此选项,您将变得非常自由。
但是,如果将阈值设置为高,则说0.9。
以下是同一模型在不同阈值下的ROC曲线。
从上图可以看出,真实的阳性率以较高的速率增加,但突然在某个阈值处,TPR开始逐渐减小。对于TPR的每增加,我们都必须付出一定的费用,即FPR的增加。在初始阶段,TPR的增长高于FPR
因此,我们可以选择TPR高且FPR低的阈值。
现在,让我们看看关于TPR和FPR的不同值如何告诉我们该模型。
对于不同的模型,我们将具有不同的ROC曲线。现在,如何比较不同的型号?从上面的图中可以看出,曲线在上三角形中,模型是好的。比较分类器的一种方法是测量ROC曲线下的面积。
AUC(模型1)> AUC(模型2)> AUC(模型2)
因此,模型1是最好的。
概要
我们了解了用于评估分类模型的不同指标。何时使用哪些指标主要取决于问题的性质。因此,现在回到您的模型,问问自己您要解决的主要目的是什么,选择正确的指标并评估模型。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群