0
点赞
收藏
分享

微信扫一扫

百面机器学习--机器学习面试问题系列(二)模型评估

紫荆峰 2022-04-14 阅读 84
机器学习

本文是在学习《百面机器学习 算法工程师带你去面试》过程中的学习笔记,将面试问题进行记录以方便查阅,根据目录分成个系列。持续更新中…

二、模型评估

不同类型的机器学习问题,选择不同的评估指标。恰当的评估指标才能快速发现模型的问题以进行有话。模型评估主要分为离线评估和在线评估两个阶段。

  1. 评估指标的局限性:
    • 准确率的局限性:一个模型在训练集和测试集的准确率达到了95%,但是在实际应用中效果很差。如果训练集中不同类别占比非常不均衡,假如99%都是负样本,那模型只要将所有样本都归为负样本就能达到99%的准确率。所以可以使用平均准确率(每个类别下的样本准确率的算术平均)作为评估指标更有效。当然在实际应用中模型效果不好还可能是模型过拟合、欠拟合、测试集训练集划分不合理、线下评估与线上测试的样本分布存在差异等。

    • 精确率与召回率的权衡(P-R曲线):

      精确率Precision:分类正确的正样本个数占分类器判定为正样本的样本个数比例。

      召回率Recall:分类正确的正样本个数占真正正样本个数的比例。

      Precision和Recall是矛盾又统一的两个指标。Precision越高,说明分类器判定一个样本为正样本时越严格,所以往往因为更保守而漏掉没有把握的正样本,导致了Recall值降低。为了综合评估一个排序模型的好坏,最好绘制出模型的P-R曲线。横轴代表R,纵轴代表P,整条曲线通过将阈值从高到底移动而生成的,超出阈值判定为正样本,低于阈值为负样本。F1 score和ROC曲线也能综合反应排序模型的性能,F1 score是P值和R值的调和平均值,定义为:

      F 1 = 2 ∗ P ∗ R P + R F1=\frac{2*P*R}{P+R} F1=P+R2PR

      ROC曲线在后文单独介绍。

    • 平方根误差RMSE的局限:均方误差MSE大家应该都很熟悉,RMSE在均方误差上开个根号。在回归模型中经常用到这两个误差。但是如果模型在95%区间的样本中,预测误差都小于1%,但整体RMSE误差居高不下,有可能是偏离程度非常大的离群点(Outlier)导致的,即便离群点数量非常少,也会使RMSE指标变得很差。解决方案:1. 如果离群点是噪声点的话,过滤。2. 不是噪声点,那需要提高模型预测能力。3. 找到更合适的指标评估模型,如平均绝对百分比误差(MAPE)。

  2. ROC曲线:ROC曲线经常用来评估二值分类器最重要的指标之一。
    • ROC曲线定义:横坐标为假阳性率(False Positive Rate)FPR,纵坐标为真阳性率(Ture Positive Rate)TPR:

      F P R = 负 样 本 被 分 类 器 判 定 为 正 样 本 的 数 量 / 真 正 负 样 本 数 量 FPR=负样本被分类器判定为正样本的数量/真正负样本数量 FPR=/

      T P R = 正 样 本 被 分 类 器 预 测 为 正 样 本 的 数 量 / 真 正 正 样 本 数 量 TPR=正样本被分类器预测为正样本的数量/真正正样本数量 TPR=/

    • 绘制ROC曲线:通过不断移动分类器的阈值来生成曲线上的关键点。比如,模型预测概率大于阈值判定为正样本,小于阈值判定为负样本,每一个阈值对应一个FPR和TPR,连接所有的关键点得到ROC曲线。

    • AUC:指的是ROC曲线下的面积大小,一般取值在0.5~1之间。AUC越大,说明分类器越有可能把真正的正样本排在前面,分类性能越好。

    • ROC与P-R曲线各自的特点:当正负样本分布(如正负样本比例发生改变)发生变化时,ROC曲线形状基本保持不变,P-R曲线一般会发生剧烈变化。所以ROC曲线能够降低不同测试集带来的干扰,更加稳定的反应模型好坏,适用场景更多如排序、推荐、广告等。如果想看到模型在特定数据集上的表现,P-R曲线能够更直观的反应其性能。

  3. 余弦距离的应用:余弦距离是用来评估样本间的距离。评估样本距离是定义优化目标和训练方法的基础。
    • 为什么一些场景中使用余弦相似度而不是欧式距离:对于两个向量A,B,其余弦相似度定义如下:

      c o s ( A , B ) = A ⋅ B ∥ A ∥ 2 ∥ B ∥ 2 cos(A,B)=\frac{A\cdot B}{\left \| A \right \|_2 \left \| B \right \|_2} cos(A,B)=A2B2AB

      即两个向量夹角的余弦。关心的是向量之间的角度关系,而不关心绝对大小,取值范围为[-1,1]。在文本、图像、视频等领域,对象的特征维度很高,余弦相似度在高维的情况下依然能保持“相同时为1,正交时为0,相反时为-1”,欧式距离的值受维度影响,范围不固定,含义也比较模糊。在一些向量模长经过归一化的场景中,欧式距离与余弦距离具有单调的关系,使用哪一个结果都是相同的:

      ∥ A − B ∥ 2 = 2 ( 1 − c o s ( A , B ) ) \left \| A-B \right \|_2=\sqrt{2(1-cos(A,B))} AB2=2(1cos(A,B))

      ( 1 − c o s ( A , B ) ) (1-cos(A,B)) (1cos(A,B)) 代表余弦距离。总结:欧式距离体现数值上的绝对差异,余弦距离体现方向上的相对差异。根据不同的应用场景选择合适的距离评估方式。

    • 余弦距离是否是一个严格定义的距离:首先明确距离是如何定义的:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性、对称性、三角不等式)成立,则该实数可称为这对元素之间的距离。

      来看余弦距离:

      • 正定性: d i s t ( A , B ) = 1 − c o s ( A , B ) dist(A,B)=1-cos(A,B) dist(A,B)=1cos(A,B) ,恒>=0,并且dist(A,B)=0时A=B。满足。
      • 对称性: d i s t ( A , B ) = d i s t ( B , A ) dist(A,B)=dist(B,A) dist(A,B)=dist(B,A),满足。
      • 三角不等式:一个反例,A=(1,0),B=(1,1),C=(0,1), d i s t ( A , B ) + d i s t ( B , C ) < d i s t ( A , C ) dist(A,B)+dist(B,C)<dist(A,C) dist(A,B)+dist(B,C)<dist(A,C),不满足。

      所以余弦距离不是严格定义的距离。此外KL距离也不是距离,不满足对称性和三角不等式。

举报

相关推荐

0 条评论