乐趣区

关于人工智能:如何选择分类模型的评价指标

作者 |MUSKAN097
编译 |VK
起源 |Analytics Vidhya

简介

你曾经胜利地构建了分类模型。你当初该怎么办?你如何评估模型的性能,也就是模型在预测后果方面的体现。为了答复这些问题,让咱们通过一个简略的案例钻研理解在评估分类模型时应用的度量。

让咱们通过案例钻研深刻理解概念

在这个全球化的时代,人们常常从一个中央旅行到另一个中央。因为乘客排队等待、办理登机手续、访问食品供应商以及应用卫生间等设施,机场可能会带来危险。在机场追踪携带病毒的乘客有助于避免病毒的流传。

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

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

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

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

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

混同矩阵

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

准确度

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

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

当初,让咱们思考均匀每天有 50000 名乘客出行。其中有 10 个是 COVID 阳性。

进步准确率的一个简略办法是将每个乘客都归为 COVID 阴性。所以咱们的混同矩阵如下:

本案例的准确度为:

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

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

对于这个非凡的例子,咱们试图将乘客标记为 COVID 阳性和阴性,心愿可能辨认出正确的乘客,我能够通过简略地将每个人标记为 COVID 阴性来取得 99.98% 的准确率。

显然,这是一种比咱们在任何模型中见过的更准确的办法。但这并不能解决目标。这里的目标是辨认 COVID 阳性的乘客。在这种状况下,准确度是一个可怕的衡量标准,因为它很容易取得十分好的准确度,但这不是咱们感兴趣的。

所以在这种状况下,准确度并不是评估模型的好办法。让咱们来看看一个十分风行的措施,叫做召回率。

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

召回率给出你正确辨认为阳性的分数。

当初,这是一项重要措施。在所有阳性的乘客中,你正确辨认的分数是多少。回到咱们以前的策略,把每个乘客都标为阴性,这样召回率为零。

Recall = 0/10 = 0

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

作为对上述每个问题的另一个侧面答复,请思考 COVID 的每一个问题。每个人走进机场,模型都会给他们贴上阳性标签。给每位乘客贴上阳性标签是不好的,因为在他们登机前,理论考察每一位乘客所需的费用是微小的。

混同矩阵如下:

召回率将是:

Recall = 10/(10+0) = 1

这是个大问题。因而,论断是,准确度是个坏主意,因为给每个人贴上负面标签能够进步准确度,但心愿召回率在这种状况下是一个很好的衡量标准,但起初意识到,给每个人贴上侧面标签也会减少召回率。

所以独立的召回率并不是一个好的衡量标准。

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

精确度

精确度给出了所有预测为阳性后果中正确辨认为阳性的分数。

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

Precision = 10 / (10 + 49990) = 0.0002

尽管这个谬误的策略有一个好的召回值 1,但它有一个可怕的精确度值 0.0002。

这阐明单纯的召回并不是一个好的衡量标准,咱们须要思考精确度。

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

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

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

Recall = 1 / (1 + 9) = 0.1

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

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

在某些状况下,咱们十分确定咱们想要最大限度地进步召回率或精确性,而代价是其他人。在这个标记乘客的案例中,咱们真的心愿能正确地预测 COVID 阳性的乘客,因为不预测乘客的正确性是十分低廉的,因为容许 COVID 阳性的人通过会导致流传的减少。所以咱们更感兴趣的是召回率。

可怜的是,你不能两者兼得:进步精确度会升高召回率,反之亦然。这称为准确度 / 召回率衡量。

准确度 / 召回率衡量

一些分类模型输入的概率介于 0 和 1 之间。在咱们将乘客分为 COVID 阳性和阴性的案例中,咱们心愿防止脱漏阳性的理论案例。特地是,如果一个乘客的确是阳性的,但咱们的模型无奈辨认它,这将是十分蹩脚的,因为病毒很有可能通过容许这些乘客登机而流传。所以,即便有一点狐疑有 COVID,咱们也要贴上阳性的标签。

所以咱们的策略是,如果输入概率大于 0.3,咱们将它们标记为 COVID 阳性。

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

思考与此相反的状况,当咱们确定乘客为阳性时,咱们心愿将乘客分类为阳性。咱们将概率阈值设置为 0.9,即当概率大于或等于 0.9 时,将乘客分类为正,否则为负。

所以一般来说,对于大多数分类器来说,当你扭转概率阈值时,会在召回率和精确度之间进行衡量。

如果须要比拟具备不同准确召回值的不同型号,通常能够不便地将精度和召回合并为一个度量。对的!!咱们须要一个同时思考召回率和精确度的指标来计算性能。

F1 分数

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

你肯定想晓得为什么和谐均匀而不是简略均匀?咱们应用和谐平均值是因为它对十分大的值不敏感,不像简略的平均值。

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

因而,如果你想在精确度和召回率之间寻求均衡,F1 分数是一个更好的衡量标准。

ROC/AUC 曲线

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

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

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

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

当初,思考一个低阈值。因而,在所有按升序排列的概率中,低于 0.1 的被认为是负的,高于 0.1 的都被认为是正的。抉择阈值是自在的

然而如果你把你的门槛设得很高,比方 0.9。

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

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

因而,咱们能够抉择 TPR 高而 FPR 低的阈值。

当初,让咱们看看 TPR 和 FPR 的不同值通知了咱们对于这个模型的什么。

对于不同的模型,咱们会有不同的 ROC 曲线。当初,如何比拟不同的模型?从下面的曲线图能够看出,曲线在下面代表模型是好的。比拟分类器的一种办法是测量 ROC 曲线下的面积。

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

因而模型 1 是最好的。

总结

咱们理解了用于评估分类模型的不同度量。何时应用哪些指标次要取决于问题的性质。所以当初回到你的模型,问问本人你想要解决的次要目标是什么,抉择正确的指标,并评估你的模型。

原文链接:https://www.analyticsvidhya.c…

欢送关注磐创 AI 博客站:
http://panchuang.net/

sklearn 机器学习中文官网文档:
http://sklearn123.com/

欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/

退出移动版