模型的评估主要分为离线评估和在线评估两个阶段。针对分类、排序、回归、序列等不同类型的机器学习问题,评估的指标选择也不同。知道每种评估指标的精确定义、有针对性的选择合适的评估指标、根据指标的反馈来调整模型,是很关键的问题。
2.1 评估指标的局限性
大部分评估指标只能片面的反应模型的一部分性能。如果不能合理的运用评估指标,不仅不能发现模型本身的问题,而且还会得出错误的结论。
2.1.1 准确率的局限性
问题场景:
HULU的奢侈品广告主们希望把广告定向投放给奢侈品用户。HULU通过第三方数据管理平台拿到了一部分奢侈品用户的数据,并且利用该数据进行了模型训练,训练准确率达到了95%,但在实际投放过程中,该模型还是把大部分广告投放给了费奢侈品用户,这是为什么?
在回答这个问题之前,我们先来看一下准确率的定义。准确率是指分类正确的样本数量占总样本数量的比例,即:
a c c u r a c y = n c o r r e c t n t o t a l accuracy=\frac{n_{correct}}{n_{total}} accuracy=ntotalncorrect
-
准确率是分类问题中最简单也是最直观的一个指标,但存在明显的缺陷:当负样本占99%时,即使分类器把所有样本都预测为负样本,也可以获得99%的准确率。因此,当正负样本比例及其不均衡时,占比大的类别往往成为影响准确率最重要的因素。
-
因此前面的问题就迎刃而解,奢侈品用户只占全体用户的一小部分,整体准确率高,不代表对奢侈品用户的分类正确率也高。
-
为了解决这个问题,可以使用==平均准确率(每个类别下准确率的算术平均)==作为评价指标
但另一方面,这个问题的造成原因也不一定仅仅是评估指标的问题,也有可能是模型的过拟合或者欠拟合、测试集和训练集划分不合理、线下评估与线上测试的样本分布存在差异等等。
2.1.2 精确率与召回率的权衡
问题场景:
HULU提供视频的模糊搜索功能,搜索排序模型返回的Top5精确率非常高,但在实际使用过程中,用户还是经常找不到想要搜索的视频,特别是对于一些冷门的剧集,这是为什么呢?
同样我们要搞清楚精确率和召回率就要先搞清楚混淆矩阵
二分类问题的混淆矩阵由 4 个数构成。
-
真正例(TP):算法预测为正例(T),实际上也是正例(P)的个数,即算法预测对了;
-
真负例(TN):算法预测为负例(F),实际上也是负例(N)的个数,即算法预测对了;
-
假负例(FN): 算法预测为负例(F),实际上是正例(P)的个数,即算法预测错了;
-
假正例(FP):算法预测为正例(T),实际上是负例(P)的个数,即算法预测错了。
混淆矩阵定义如下:
预测值:1 | 预测值:0 | |
---|---|---|
真实值:1 | TP | FN |
真实值:0 | FP | TN |
- 精确率是指分类正确的正样本个数占分类器判定为正样本的样本个数比例,即:
p r e c i s i o n = T P T P + F P precision=\frac{TP}{TP+FP} precision=TP+FPTP
- 召回率是指分类正确的样本个数占真正的正样本个数的比例,即:
r e c a l l = T P T P + F N recall=\frac{TP}{TP+FN} recall=TP+FNTP
在排序问题中,通常没有一个直接的阈值把得到的结果判定为正样本或负样本,而是根据TopN返回结果的Precision值和Recall值来衡量模型的性能,即默认TopN返回的结果就是模型判定的正样本,而后计算前N个位置上的精确率Precision@N和召回率Recall@N。
Precision和Recall是两个既矛盾又统一的指标,为了提高Precisson值,模型通常在“更有把握”时才会把样本预测为正样本,但此时往往会因为保守而漏掉很多“没有足够把握”的正样本,导致Recall值降低。
- 因此对于这个问题模型返回的Precision@5非常好,也就是说排序模型Top5的返回值质量都是很高的,但在实际中,用户为了寻找冷门视频,往往会寻找排序中较为靠后的位置的结果,根据问题描述,用户往往找不到想要的视频,说明模型没有把相关视频都呈现出来给用户,问题出在召回率上。
在实际问题中,我们为了更好地综合衡量这两个指标,往往采用P-R曲线。
- P-R曲线的横轴是召回率,纵轴是精确率,对于一个排序模型来说,P-R曲线的每一个点代表在某一阈值下,模型将大于该阈值的结果判定为正样本,反之则为负样本,此时返回结果对应的召回率和精确率。
- 整条P-R曲线是通过将阈值从高到低移动而生成的
- 其中原点附近代表阈值最高时对应的召回率和精确率
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a0ClrvOx-1658221280435)(D:\Typora\Typora\image\src=http___img.it610.com_image_info8_a41990d3d49c4ea88e2e122486fa0768.png&refer=http___img.it610.webp)]
此外,F1-score和ROC曲线也能综合的反映一个排序模型的性能。F1-score是精确率和召回率的调和平均值,他的定义为:
F 1 = 2 × p r e c i s i o n × r e c a l l p r e c i s i o n + r e c a l l F1=\frac{2\times precision\times recall}{precision+recall} F1=precision+recall2×precision×recall
ROC曲线后面会单独讨论,这里不赘述。
2.1.3 平方根误差的“意外”
问题描述:
HULU是一家流媒体公司,预测每部美剧的流量趋势对于广告投放、用户增长都十分重要。因此HULU特地构建了一个回归模型来预测某部美剧的流量趋势,但是无论采用哪种回归模型,得到的RMSE指标都非常高。然而事实是,模型在95%的时间区间内的预测误差都小于1%,取得了相当不错的成果,那么RMSE居高不下的原因是什么?、
RMSE是衡量回归模型最常用的指标之一,其公式为:
R M S E = ∑ i = 1 n ( y i − y ^ i ) 2 n RMSE=\sqrt{\frac{\sum\limits_{i=1}^n(y_i-\hat y_i)^2}{n}} RMSE=ni=1∑n(yi−y^i)2
-
其中 y i y_i yi为底 i i i个样本的真实值, y ^ i \hat y_i y^i是第 i i i个样本的预测值, n n n是样本个数
-
一般情况下RMSE都能正确反映回归模型预测值与真实值之间的偏离程度,但如果存在个别偏离程度非常大的离群点时,即使离群点的数量非常少,也会让RMSE变得很差。
-
那么这个问题很有可能就是由于离群点的存在而造成的,那么我们该如何处理呢?
-
首先我们可以在数据预处理的阶段就将这些噪声点过滤掉。
-
如果不过滤,需要提高模型的预测能力,将离群点产生的机制建模进去。
- <
-