目标检测中,存在很多常见的模型评估与选择的度量方法,本文结合周志华老师的<机器学习>,以及自己的理解对常见的度量方法做一个总结。

基础介绍

常见的评估方法,我们在进行样本学习与测试的过程中,通常采用多种方式来进行样本集合的分类。
(1) 留出法
将样本按比例分为两个子集,一个为训练集,一个为验证集,通常保证训练集和验证集的样本类别服从同分布。多次划分后取平均的实验结果作为最终的结果。
(2) 交叉验证法 (最常用)
通过对数据集划分为k个大小基本相同,分布基本相似的子集,每次从中选取K-1次进行训练,1个进行测试,则可以得到K组结果,最终根据k组的结果进行统计,一般为5折或者10折。
(3) 自助法
数据集较小的时候,通过自身的bootstrapping方法,多次有放回的采样增加样本集合。

模型评估

通常我们定量一个模型的好坏,根据错误率和准确率来定量,但是在实际问题中,还有很多衡量的指标。

回归

(1) 常用均方误差来衡量MSE

\[E(f;D)= \frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2
\]

(2) 和方差 SSE

\[E(f;D) = \sum_{i=1}^{m}w_i(f(x_i)-y_i)^2
\]

(3) 均方根误差RMSE

\[RMSE = \sqrt{MSE}= \sqrt{\frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2}
\]

分类

(1) 错误率与准确率

\[E(f;D) = \frac{1}{m}\sum_{i=1}^{m} I(f(x_i) \neq y_i)
\]

\[acc(f;D) = \frac{1}{m}\sum_{i=1}^{m} I(f(x_i) = y_i) = 1-E(f;D)
\]

(2) 查准率(精确度)和查全率(召回率)

\[表2.1 分类结果混淆矩阵
\]

真实-预测 正样本 负样本
正样本 TP FN
负样本 FP TN
则,查准率与召回率公式如下
\[P = \frac{TP}{TP+FP}
\]

\[R = \frac{TP}{TP+FN}
\]

一般来说查全率高,召回率往往低,召回率高,查全率就偏低,因此,常用F1Score来衡量:

\[F1 = \frac{2*P*R}{P+R}
\]

通常在做目标检测与分类时,会设定不同的阈值,目标会根据阈值划分到不同的类别,因此通过对分数阈值排序,可以得到多组的PR值,从而可以画出PR曲线,通常用y=x与PR曲线的交点来作为平衡点评估模型的好坏。
(3) ROC于AUC
在做识别任务中,通常产生一个分数值,通过与阈值的对比,从而判断样本属于正例还是负例,而ROC曲线,则用以衡量真正例率与假正例率的比例.

\[TPR = \frac{TP}{TP+FN}
\]

\[FPR = \frac{FP}{FP+TN}
\]

通过设置不同的阈值,可以得到不同的TPR和FPR,从而做出ROC曲线
而AUC用来衡量ROC曲线与坐标轴的面积,面积越大,则代表模型越好,通常:

\[AUC = \frac{1}{2}\sum_{i=1}^{m}(x_{i+1}-x_i)*(y_{i+1}-y_i)
\]

(4) FAR 与 FRR
FAR即(False Acceptance Rate),FRR即(False rejection Rate),一般用来衡量二分类,例如人脸中,FAR代表不同的人识别为同一个人的概率,而FRR代表一个人识别为不同人的概率.如果300个人,每个人两张图片,则总共的比较次数为 \(C_{600}^{2}\),其中应当识别成为同一个人的有300对,应当识别为不同的人的有 \(C_{300}^{2}*C_{2}^{1}*C_{2}^{1}\),则通过计算300对中识别成不是一个人的个数与不同人识别为同一个人的概率来衡量模型的好坏。

本文作者: 张峰
本文链接:http://www.enjoyai.site/2017/10/30
版权声明:本博客所有文章,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!