机器学习评价指标详解

1. 混淆矩阵,准确率,精准率,召回率

实际结果
10
预测结果1TPFP
0FNTN

TP、FP、TN、FN都是针对与预测来说的。比如T表示预测正确,P表示预测为1(阳性)。

所以以这个思路理解TP、FP、TN、FN如下

  • TP: 预测为 1,预测正确,即实际 1
  • FP: 预测为 1,预测错误,即实际 0
  • FN: 预测为 0,预测错确,即实际 1
  • TN: 预测为 0,预测正确,即实际 0

2. 准确率

定义:
预 测 正 确 样 本 总 样 本 = T P + T N T P + T N + F P + F N \frac{预测正确样本}{总样本}=\frac{TP+TN}{TP+TN+FP+FN} =TP+TN+FP+FNTP+TN
在这里插入图片描述

弊端:虽然准确率可以判断总的正确率,但是在样本不平衡 的情况下,并不能作为很好的指标来衡量结果。举个简单的例子,比如在一个总样本中,正样本占 90%,负样本占 10%,样本是严重不平衡的。对于这种情况,我们只需要将全部样本预测为正样本即可得到 90% 的高准确率,但实际上我们并没有很用心的分类,只是随便无脑一分而已。这就说明了:由于样本不平衡的问题,导致了得到的高准确率结果含有很大的水分。即如果样本不平衡,准确率就会失效。

3. 精确率(precision)

精准率(Precision)又叫查准率,它是针对预测结果 而言的,它的含义是在所有被预测为正的样本中实际为正的样本的概率,意思就是在预测为正样本的结果中,我们有多少把握可以预测正确。(放眼第一行,即预测为正的样本)

公式:
精 确 率 = T P T P + F P 精确率=\frac{TP}{TP+FP} =TP+FPTP
在这里插入图片描述

总结:精准率和准确率看上去有些类似,但是完全不同的两个概念。精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

4. 召回率(Recall)

召回率(Recall)又叫查全率,它是针对原样本而言的,它的含义是在实际为正的样本中被预测为正样本的概率.(放眼混淆矩阵第一列,即实际为正的样本)
召 回 率 = T P T P + F N 召回率=\frac{TP}{TP+FN} =TP+FNTP[

召回率的应用场景: 比如病理图像领域,癌症区域即为阳性区域。所以对于癌症的预测,宁可预测有,也不能预测没有。也就是宁可把真实阴性样本预测成阳性样本(即FP),也不希望把真实阳性样本预测成阴性样本(即FN)。召回率越高,代表癌症区域被预测出来的概率越高

5. P-R曲线(查准率-查全率)

在这里插入图片描述

这条曲线是根据什么变化的?为什么是这个形状的曲线? 其实这要从排序型模型说起。拿逻辑回归举例,逻辑回归的输出是一个 0 到 1 之间的概率数字,因此,如果我们想要根据这个概率判断用户好坏的话,我们就必须定义一个阈值 。通常来讲,逻辑回归的概率越大说明越接近 1,也就可以说他是坏用户的可能性更大。比如,我们定义了阈值为 0.5,即概率小于 0.5 的我们都认为是好用户,而大于 0.5 都认为是坏用户。因此,对于阈值为 0.5 的情况下,我们可以得到相应的一对查准率和查全率。

这个阈值是我们随便定义的,我们并不知道这个阈值是否符合我们的要求。 因此,为了找到一个最合适的阈值满足我们的要求,我们就必须遍历 0 到 1 之间所有的阈值,而每个阈值下都对应着一对查准率和查全率,从而我们就得到了这条曲线。

如何找到最好的阈值点呢? 首先,需要说明的是我们对于这两个指标的要求:我们希望查准率和查全率同时都非常高。 但实际上这两个指标是一对矛盾体,无法做到双高。图中明显看到,如果其中一个非常高,另一个肯定会非常低。选取合适的阈值点要根据实际需求,比如我们想要高的查全率,那么我们就会牺牲一些查准率,在保证查全率最高的情况下,查准率也不那么低。

6. F1分数

**数学表示:**precision和recall的调和平均。

F1 分数同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。F1 分数的公式为 = 2 *查准率*查全率 / (查准率 + 查全率)。 我们在图中看到的平衡点就是 F1 分数得来的结果。

公式:
F 1 = 2 1 P + 1 R ( P ≠ 0 , R ≠ 0 ) F1 = \frac{2}{\frac{1}{P}+\frac{1}{R}}(P\ne0,R\ne0) F1=P1+R12(P=0,R=0)

7. ROC曲线和AUC值

7.1. 灵敏度,特异度,真正率,假正率

在正式介绍 ROC/AUC 之前,我们还要再介绍两个指标,这两个指标的选择也正是 ROC 和 AUC 可以无视样本不平衡的原因。 这两个指标分别是:灵敏度和(1-特异度),也叫做真正率(TPR)和假正率(FPR)

灵敏度(Sensitivity) = TP/(TP+FN)

特异度(Specificity) = TN/(FP+TN)

  • 其实我们可以发现灵敏度和召回率是一模一样的,只是名字换了而已。
  • 由于我们比较关心正样本,所以需要查看有多少负样本被错误地预测为正样本,所以使用(1-特异度),而不是特异度。

真正率(TPR) = 灵敏度 = TP/(TP+FN)

假正率(FPR) = 1- 特异度 = FP/(FP+TN)**

下面是真正率和假正率的示意,我们发现 TPR 和 FPR 分别是基于实际表现 1 和 0 出发的,也就是说它们分别在实际的正样本和负样本中来观察相关概率问题。 正因为如此,所以无论样本是否平衡,都不会被影响。还是拿之前的例子,总样本中,90% 是正样本,10% 是负样本。我们知道用准确率是有水分的,但是用 TPR 和 FPR 不一样。这里,TPR 只关注 90% 正样本中有多少是被真正覆盖的,而与那 10% 毫无关系,同理,FPR 只关注 10% 负样本中有多少是被错误覆盖的,也与那 90% 毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用 TPR 和 FPR 作为 ROC/AUC 的指标的原因。

在这里插入图片描述

或者我们也可以从另一个角度考虑:条件概率。 我们假设 X 为预测值,Y 为真实值。那么就可以将这些指标按条件概率表示:

精准率 = P(Y=1 | X=1)

召回率 = 灵敏度 = P(X=1 | Y=1)

特异度 = P(X=0 | Y=0)

从上面三个公式看到:如果我们先以实际结果为条件(召回率,特异度),那么就只需考虑一种样本,而先以预测值为条件(精准率),那么我们需要同时考虑正样本和负样本。所以先以实际结果为条件的指标都不受样本不平衡的影响,相反以预测结果为条件的就会受到影响。

7.2 ROC(TPR-FPR)曲线

TPR:灵敏度

FPR:反特异性

7.3 AUC(曲线下的面积)

AUC 的一般判断标准

0.5 - 0.7: 效果较低,但用于预测股票已经很不错了

0.7 - 0.85: 效果一般

0.85 - 0.95: 效果很好

0.95 - 1: 效果非常好,但一般不太可能

参考网址

https://www.6aiq.com/article/1549986548173

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值