在模型评估过程中,分类问题、排序问题、回归问题往往需要使用不同的指标进行评估。在诸多的评估指标中,大部分指标只能片面地反映模型的一部分性能。如果不能合理地运用评估指标,不仅不能发现模型本身的问题,而且会得出错误的结论。
知识点
准确率(
Accuracy
),精确率(
Precision
),召回率(
Recall
),均方根误差 (Root Mean Square Error
,
RMSE
)
问题1 准确率的局限性
分类准确率的定义。准确率是指分类正确的样本占总样本个数的比例,即
![](https://i-blog.csdnimg.cn/blog_migrate/a500662253bc01763a59d6858eeb5b5c.png)
其中
n(
correct)
为被正确分类的样本个数,
n(
total)
为总样本的个数。
准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷。比如,当负样本占99%
时,分类器把所有样本都预测为负样本也可以获得
99%
的准确率。所以,当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。
事实上,这是一道比较开放的问题,面试者可以根据遇到的问题一步步地排查原因。标准答案其实也不限于指标的选择,即使评估指标选择对了,仍会存在模型过拟合或欠拟合、测试集和训练集划分不合理、线下评估与线上测试的样本分布存在差异等一系列问题,但评估指标的选择是最容易被发现,也是最可能影响评估结果的因素。
问题2 精确率与召回率的权衡
要回答这个问题,首先要明确两个概念,精确率和召回率。精确率是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。召回率是指分类正确的正样本个数占真正的正样本个数的比例。
在排序问题中,通常没有一个确定的阈值把得到的结果直接判定为正样本或负样本而是采用TopN返回结果的
Precision
值和
Recall
值来衡量排序模型的性能,即认为模型返回的Top N
的结果就是模型判定的正样本,然后计算前
N
个位置上的准确率Precision
和前
N
个位置上的召回率
Recall
。 Precision值和
Recall
值是既矛盾又统一的两个指标,为了提高
Precision
值,分类器需要尽量在“
更有把握
”
时才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多“
没有把握
”
的正样本,导致
Recall
值降低。
了综合评估一个排序模型的好坏,不仅要看模型在不同TopN下的
Precision
和
Recall
,而且最好绘制出模型的
P-R
(
Precision-Recall)曲线。这里简单介绍一下
P-R曲线的绘制方法。
P-R
曲线的横轴是召回率,纵轴是精确率。对于一个排序模型来说,其
P-R
曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率。整条P-R曲线是通过将阈值从高到低移动而生成的。
除此之外,
F1score和
ROC曲线也能综合地反映一个排序模型的性能。F1score是精准率和召回率的调和平均值,它定义为
![](https://i-blog.csdnimg.cn/blog_migrate/5e0f40ccacbed0cf41cc66acac92dc93.png)
问题3 平方根误差的“意外”
RMSE
经常被用来衡量回归模型的好坏,但按照题目的叙述,
RMSE
这个指标却失效了。先看一下RMSE
的计算公式为
![](https://i-blog.csdnimg.cn/blog_migrate/c889365871420f9086a0c4d2dd0f0bbb.png)
其中,
y
i
是第
i
个样本点的真实值, 是第
i
个样本点的预测值,
n
是样本点的个数。
一般情况下,
RMSE
能够很好地反映回归模型预测值与真实值的偏离程度。但在实际问题中,如果存在个别偏离程度非常大的离群点(Outlier
)时,即使离群点数量非常少,也会让RMSE
指标变得很差。
总结与扩展
本小节基于三个假想的Hulu应用场景和对应的问题,说明了选择合适的评估指标的重要性。每个评估指标都有其价值,但如果只从单一的评估指标出发去评估模型,往往会得出片面甚至错误的结论;只有通过一组互补的指标去评估模型,才能更好地发现并解决模型存在的问题,从而更好地解决实际业务场景中遇到的问题。