模型评价指标

一、TP、TN、FP、FN

P(Positive)\ N(Negative):模型预测的结果
T(True)\F(False):模型预测的结果是正确还是错误
TP:真正例,预测为正样本,预测正确(实际为正样本,模型判断也为正样本)
TN:真负例,预测为负样本,预测正确(实际为负样本,模型判断也为负样本)
FP:假正例,预测为正样本,预测错误(实际为负样本,模型判断为正样本)
FN:假负例,预测为负样本,预测错误(实际为正样本,模型预测为负样本)
不难看出,总样本中正样本的数目为 TP+FN,负样本的数目为 FP+TN,模型认为的正样本数目为 TP+FP,模型认为的负样本数目为 TN+FN

二、准确率、精准率、召回率

准确率(Accuracy):模型判断正确的样本数占总样本数的比例

A C C = T P + T N T P + T N + F P + F N ACC =\frac{TP+TN}{TP+TN+FP+FN} ACC=TP+TN+FP+FNTP+TN

精准率\查准率(Precision):模型认为的正样本中实际为正样本的比例
精准率越高表示模型检测出的目标中大部分确实是目标,目标检测的准不准

P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP

召回率\查全率(Recall):模型判断出正确的样本数占所有正样本数目的比例
召回率越高表示能检测出的目标越多,目标检测的越全

R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP

不能简单通过准确率衡量样本性能,在样本极度不平衡的情况下,准确率并不能衡量样本的性能,比如有 90%的正样本,10%的负样本,在这种情况下,只需要将所有样本预测为正样本就可以获得 90%的准确率

所以我们需要精准率和召回率

精准率与召回率计算的都是预测正确的正样本(所要检测的目标)所占的比例,不同的是,精准率的分母是模型认为的正样本(可能有预测错误),召回率的分母是所有样本中的正样本

三、P-R 图、F-Score

我们希望精准率和召回率越高越好,从下面 PR 曲线可以看出这是不可能的

Figure 1. P-R 图

我们为模型设置一个阙值,大于阙值则将数据分类为正样本,小于阙值则分类为负样本,这样当有 n 个阙值,在每一个阙值下都能获取到对应的精准率和召回率(P,R)。将 n 个(P,R)按照阙值从高到底排列,并且连起来就得到了该模型的 P-R 图。
在靠近原点的地方阙值最高,此时查准率最高,随着阙值降低,查全率(精准率)升高,精准率(查全率)降低
根据模型的用途不同,我们可以选择保证精准率还是召回率
当有多个模型时,可以选择在同一精准率(召回率)下召回率(精准率)最高的模型
大多时候,我们需要同时保证精准率和召回率,F1 分数是一个综合精准率和召回率后得到的指标,F1 分数最高的地方,就是 P-R 图中的平衡点

F1 Score:精准率和召回率的调和平均数
F 1 S c o r e = 2 1 R e c a l l + 1 P r e c i s i o n = 2 × R e c a l l × P r e c i s i o n R e c a l l + P r e c i s i o n F1 Score=\frac{2}{\frac{1}{Recall}+\frac{1}{Precision}}=\frac{2\times Recall\times Precision}{Recall+Precision} F1Score=Recall1+Precision12=Recall+Precision2×Recall×Precision
当精准率=召回率时,即平衡点,F1 分数最高

很明显,上面的公式用来计算某一个类的 F1 分数,对于多分类任务,我们需要考虑各个类的 F1 分数,于是产生了两种策略:Micro-F1、Macro-F1

Micro-F1:将所有类别的 TP、TN、FP、FN 加在一起,构成新的 TP、TN、FP、FN,计算 Micro-Precision 和 Micro-Recall 得到 Micro-F1
Macro-F1:单独计算每个类别的 F1,求平均数
Macro-F1 比 Micro-F1 更加常用

四、AP、mAP

AP(Average Percision):召回率从 0 到 1 对应的精确率的平均值
例如,Recall=0.1 时,Precision=y1;Recall=0.2 时,Precision=y2;… ;Recall=1.0 时,Precision=yn,则
A P = 1 n ∑ i = 0 n y i AP=\frac{1}{n}\sum^n_{i=0}{y_i} AP=n1i=0nyi
以上各点可以连起来构成 P-R 曲线,则利用以下公式计算 AP
A P = ∫ 0 1 P ( R ) d R AP=\int^1_0{P(R)}{dR} AP=01P(R)dR
公式 1 b − a ∫ a b f ( x ) d x \frac{1}{b-a}\int^b_a{f(x)}{dx} ba1abf(x)dx可以用来计算 f(x)在[a,b]内的平均值

实际的 P-R 曲线时波动的,并不像上面展示的那样平滑,在实际情况下会对 P-R 曲线进行处理来计算 AP,不同的数据集,不同的比赛有不同的调整策略,这里不详细讲了

像 F1 分数一样,AP 适应于二分类,当有多个类时,需要考虑各个类的 AP,于是有 mAP

mAP(mean average precision):各个类 AP 的平均值
m A P = 1 n ∑ i = 0 n A P i mAP=\frac{1}{n}\sum^n_{i=0}{AP_i} mAP=n1i=0nAPi

在实际应用 map 时,经常看到mAP@.5和mAP@.5:.95,mAP@.5表时在 IoU 的阙值为 0.5,mAP@.5:.95 表示 IoU 的阙值为 0.5-0.95,每 0.05 计算一次 mAP,然后取平均值
需要注意的是 mAP(mean average precision)不同于 MAP(macro average precision),前者用于衡量目标检测模型,后者用于衡量分类模型
MAP(macro average precision):各个类精准率的平均值
M A P = 1 S ∑ i = 0 S P i MAP=\frac{1}{S}\sum^S_{i=0}{P_i} MAP=S1i=0SPi

五、参考文档

FP,FN,TP,TN 与精确率(Precision),召回率(Recall),准确率(Accuracy)
机器学习–PR 曲线, ROC 曲线
如何理解与应用调和平均数?
【评价指标】详解 F1-score 与多分类 F1
白话 mAP
ap 和 map 的计算,mAP@.5 mAP@.5:.95 的含义

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值