分类任务评价指标

评价指标

在分类的过程中我们需要通过一些指标来对我们的模型进行评价,下面的一些是经常用来评价模型好坏的一些指数:准确率、精确率、召回率、F1 Score、P-R曲线、ROC、AUC。

准确率、精确率、召回率、F1 Score

分类任务评价指标_第1张图片

1. 准确率

在这里插入图片描述

Accuracy = (TP + TN) / (TP + FN + FP +TN)
这个指标主要是用来指示预测正确的样本数占总样本数的个数

2. 精确率(查准率)

Precision = TP / (TP+FP)
精确率反应的是预测为正的样本里真的为正的样本所占的比例,通俗点说就是神经网络说这些样本是正例,但是神经网络并不是百分百正确,所以它给出的预测中有些是反例,假如神经网络预测出的10个正例,真正类有6个,假正类有4个那么precision = 6 / (6 + 4) = 0.6

3. 召回率(查全率)

Recall = TP / (TP+FN)
和精确率有点容易混淆,这个指标反映的是被预测为正样本的数量占全体正样本数量的比例,因为会有一些正样本被误判为负样本

4. F1 Score

查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使二者都很高。F1 Score是Precision和Recall加权调和平均数,并假设两者一样重要。
举个例子
比如我们在一堆掺有好瓜和坏瓜的瓜堆里,将好瓜类比成正例坏瓜为反例,若希望将好瓜尽可能多选出来即提高召回率,则可通过增加选瓜的数量来实现,如果希望将所有的西瓜都选上,那么所有的好瓜必然都被选上了,但这样查准率就会较低;若希望选出的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率较低。

在这里插入图片描述

P-R曲线

转至Python机器学习

在分类时,我们经常需要对学习模型的预测结果进行排序,排在前面的被认为“最可能”是正类样本,排在后面的被认为“最不可能”是正类样本。因此我们往往要在中间设定一个临界值(Threshold),当预测值大于这个临界值时,样本为正类样本,反之为负类样本。

按不同的临界值,将每个样本作为正类样本来预测,就会得到不同的查准率和查全率。如果以查准率为纵轴,以查全率为横轴,那么每设定一个临界值,就可以在坐标系上画出一个点。当设定多个临界值时,就可以在坐标系中画出一条曲线。这条曲线便是 P-R 曲线,如图所示。
分类任务评价指标_第2张图片

P-R 曲线能直观地显示分类算法在整体上的查准率和查全率。当对多个分类算法进行比较时,如果算法 1 的 P-R 曲线完全“外包围”算法 2 的 P-R 曲线,那么处于外侧的算法 1 有着更高的查准率和查全率(双高),这说明算法 1 比算法 2 有着更好的分类性能。

但更一般的情况是,算法之间的 P-R 曲线彼此犬牙交错(见图 1),很难断言二者孰优孰劣,只能在具体的查准率和查全率下做比较。但倘若非要比个高下,该怎么办呢?比较稳妥的办法是比较 P-R 曲线下的面积大小,谁的面积大,从某种程度上就说谁的“双高”比例大,即性能更优。但这个面积不容易估算,因此人们设计了一些综合考虑查准率和查全率的度量标准。

平衡点(Break-Even Pont,简称 BEP)就是这样的度量标准。当 P=R(可视为一条夹角为 45° 的直线)时,这条直线与各个分类算法的 P-R 曲线会产生交点(即 BEP),哪个算法的 BEP 值更大,那个算法的分类性能就更优。比如说,在图 1 中,算法 2 的 BEP 大于算法 1 的 BEP,那么可以说,在某种程度上,算法 2 的性能优于算法 1。

P-R 曲线的优点是直观,缺点是受样本分布(如正类与负类的占比)的影响较大。相比而言,ROC 曲线则有更多的优点,因此经常作为二值分类器性能评估的重要指标之一。下节就来讨论一下 ROC 曲线,以及与其密切相关的 AUC。

下面一篇博文通过一个例子来介绍了P-R曲线绘制的过程
P-R曲线的绘制

ROC曲线

转至Python机器学习

引入两个公式TPR(真阳性率)和FPR(假阳性率)

TPR=TP/ (TP+ FN),刻画的是分类器所预测出的正实例确实是正实例的个数占所有预测正实例的比例(包含假反例)
FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例

ROC 曲线是通过不断移动分类器的“截断点”来生成曲线上一系列关键点的。下面我们来解释“截断点”。很多时候,我们在判断某个样本是正类样本还是负类样本时,并不能“斩钉截铁”地说它“是(100%)”或“不是(0%)”。
很多分类器(比如贝叶斯分类器、神经网络分类器)仅仅会输出一个分类概率,这时可以给定一个截断点(或说阈值概率),如果分类概率大于这个截断点就判断样本为是正类样本,否则就为负类样本。对于一个已经排序的分类概率,不断移动分类器的“截断点”就会生成曲线上的一系列关键点 (FPR,TPR)。这些关键点连接起来恰好就是一条曲线,它就是我们正在学习的 ROC 曲线
分类任务评价指标_第3张图片

AUC

AUC 是 Area Under Curve 的简称,顾名思义,它表示的是“曲线下的面积”。这里的“曲线”就是我们前面提到的 ROC 曲线。AUC 就是 ROC 曲线下的面积总和,该值能够量化反映分类算法的性能。
计算 AUC 的值并不复杂,只需要沿着 ROC 曲线的横轴做积分(或累加求和)即可。通常,ROC 曲线都位于 y=x 这条线的上方(如果不是这样的,只需要把模型预测概率 P 反转成 1-P 能得到一个更好的分类器)。
因此,AUC 的取值范围一般是 0.5~1。通常来说,AUC 越大表明分类器性能越好,因为它可以把真正的正类样本排在前面,降低误判率。

参考文章

分类模型评价指标
分类算法评价指标详解

你可能感兴趣的:(深度学习,分类,机器学习,人工智能)