百面机器学习总结笔记(第二章 模型评估)

百面机器学习总结笔记(第二章 模型评估)

  • 百面机器学习总结笔记
    • 第二章 模型评估
      • 第1节 评估指标的局限性
        • 问题:准确率的局限性
        • 问题: 精确率与召回率的权衡
      • 第2节 ROC曲线
        • 问题:什么是ROC曲线?
        • 问题:如何绘制ROC曲线?
        • 问题:如何计算AUC?
        • 问题:ROC曲线相比于P-R有什么特点?
      • 第3节 余弦距离的应用
      • 第4节 A/B的陷阱
      • 第5节 模型评估的方法
        • 问题:在模型评估中,有哪些主要的评估方法,他们的优缺点是什么?
        • 问题:在自助法的采样过程中,对 n 个样本进行n次自助采样,当n趋于无穷大时,最终有多少数据从来被选择过?
      • 第6节 超参数调优
        • 问题:超参数有哪些调优方法?
      • 第7节 过拟合与欠拟合
        • 问题:在模型评估时,过拟合与欠拟合具体是什么现象?
        • 问题:能否说出几种降低过拟合与欠拟合风险的方法?

百面机器学习总结笔记

第二章 模型评估

第1节 评估指标的局限性

场景描述

在模型评估过程中,分类问题、排序问题、回归问题往往需要使用不同的指标进行评估 。在诸多的评估指标中,大部分指标只能片面地反映模型的一部分性能。 如果不能合理地运用评估指标 ,不仅不能发现模型本身的闯题,而且会得出错误的结论。下面以 Hulu 的业务为背景 ,假想几个模型评估场景,看看大家能否触类旁通,发现模型评估指标的局限性 。

知识点
准确率( Accuracy ),精确率( Precision ),召回率( Recall ),均方根误差
(Root Mean Square Error, RMSE)

问题:准确率的局限性

Hulu的奢侈品广告主们希望把广告走向投放给奢侈品用户。 Hulu通过第三方的数据管理平台( Data Management Platform , DMP )拿到了一 部分奢侈晶用户的数据 ,并以此为训练集和测试集,训练和测试用户的分类模型。该模型的分类准确率超过了95%, 但在实际广告投放过程中, 该模型还是把大部分广告投给了非奢侈品用户,这可能是什么原因造成的?

分析与解答
在解答该问题之前,我们先回顾一下分类准确率的定义。准确率是指分类正确的样本占总样本个数的比例,即
在这里插入图片描述
准确率是分类问题中最简单也是最直观的评价指标,但存在明显的
缺陷 。比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得 99% 的准确率。所以,当不同类别的样本比例非常不均衡时, 占比大的类别往往成为影响准确率的最主要因素。

显然,奢侈且用户只占 Hulu 全体用户的一小部分,虽然模型的整体分类准确率高 ,但是不代表对奢侈晶用户的分类准确率也很高。在线上投放过程中 ,我们只会对模型判定的“奢侈晶用户"进行投放,因此,对“奢侈品用户”判定的准确率不够高的问题就被放大了。为了解决这个问题,可以使用更为有效的平均准确率 (每个类别下的样本准确率的算术平均)作为模型评估的指标。

问题: 精确率与召回率的权衡

Hulu提供视频的模糊搜索功能,搜索排序模型返回的 Top 5 的精确率非常高,但在实际使用过程中,用户还是经常找不到想要的视频,特别是一些比较冷门的剧集,这可能是哪个环节出了问题呢?

分析与解答
要回答这个问题,首先要明确两个概念,精确率和召回率。

精确率(查准率)
是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例 。
召回率(查全率)
是指分类正确的正样本个数占真正的正样本个数的比例 。

Precision 值和 Recall 值是既矛盾又统一的两个指标,为了提高Precision 值,分类器需要尽量在“更高把握”时才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多“没有把握”的正样本,导致 Recall 值降低 。

回到问题中来,模型返回的 Precision@5 的结果非常好,也就是说排序模型 Top 5 的返回值的质量是很高的。但在实际应用过程中,用户为了找 一些冷门的视频,往往会寻找排在较靠后位置的结果,甚至翻页去查找目标视频。但根据题目描述,用户经常找不到想要的视频,这说明模型没有把相关的视频都找出来呈现给用户。 显然,问题出在召回率上。 如果相关结果有100 个,即使 Precision@5 达到了 100%, Recall@5 也仅仅是 5%。在模型评估时,我们是否应该同时关注 Precision值和 Recall值? 进一步而言,是否应该选取不同的 Top N 的结果进行观察呢?是否应该选取更高阶的评估指标来更全面地反映模型在 Precision 值和 Recall 值两方面的表现?

答案都是肯定的,为了综合评估一个排序模型的好坏,不仅要看模型在不同 Top N 下的 Precision@N 和 Recall@N,而且最好绘制出模型的 P-R (Precision-Recall )曲线。这里简单介绍一下 P-R 曲线的绘制方法。

P-R 由线的横轴是召回率,纵铀是精确率。
对于一个排序模型来说,其P-R 曲线上的一个点代表着,在某一阈值下 ,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率 。
整条 P-R 由线是通过将阈值从高到低移动而生成的。 图 2.1 是 P-R 曲线样例图,其中实线代表模型 A 的 P-R 曲线,虚线代表模型B的 P-R曲线。原点附近代表当闺值最大时模型的精确率和召回率。
P-R图

问题 平方根误差的“意外”
Hutu 作为一家流媒体公司,拥有众多的美剧资源,预测每部美剧的流量趋势对于广告投版、用户增长都非常重要。 我们希望构建个回归模型来预测某部美剧的流量趋势 ,但无论采用哪种回归模型,得到的 RMSE 指标都非常高 。然而事实是 ,模型在 95% 的时间区间内的预测误差都小于 1% ,取得了相当不锚的预测结果 。 那么 ,造成 RMSE 指标居高不下的最可能的原因是什么?

分析与解答
百面机器学习总结笔记(第二章 模型评估)_第1张图片
一般情况下, RMSE 能够很好地反映回归模型预测值与真实值的偏离程度 。但在实际问题中,如果存在个别偏离程度非常大的离群点 ( Outlier )时,即使离群点数量非常少也会让 RMSE 指标变得很差。

回到问题中来,模型在 95% 的时间区间内的预测误差都小于 1%, 这说明,在大部分时间区间内,模型的预测效果都是非常优秀的 。然而, RMSE 却一直很差 ,这很可能是由于在其他的 5% 时间区间内存在非常严重的离群点 。 事实上,在流量预估这个问题中,噪声点确实是很容易产生的,比如流量特别小的美剧、刚上映的美剧或者刚获奖的美剧,甚至一些相关社交媒体突发事件带来的流量,都可能会造成离群点 。

解决方案:
第一,如果我们认定这些离群点是 “噪声点 ” 的话,就需要在数据预处理的阶段把这些噪声点过滤掉 。

第二,如果不认为这些离群点是“噪声点”的 话,就需要进一步提高模型的预测能力 ,将离群点产生的机制建模进去。

第三,可以找一个更 合适的指标采评估该模型

对于评估指标,其实是存在比 RMSE 的鲁棒性更好的指标,比如平均绝对百分比误差( Mean Absolute Percent Error, MAPE ) ,官定义为
百面机器学习总结笔记(第二章 模型评估)_第2张图片

第2节 ROC曲线

场景描述
二值分类器( Binary Classifier )是机器学习领域中最常见也是应用最广泛的分类器 。评价二值分类器的指标很多,比如 precision、 recall、 F1 score、 P-R 曲线等 。 上一小节 巳对这些指标做了一定的介绍,但也发现这些指标或多或少只能反映模型在某一方面的性能 。 相比而言, ROC 曲线则高很多优点,经常作为评估二值分类器最重要的指标之一 。 下面我们来详细了解一下 ROC 曲线的绘制方法和特点 。

知识点
ROC 曲线,曲线下的面积( Aera Under Curve, AUC) , P-R 曲线

问题:什么是ROC曲线?

分析与解答
ROC 曲线是 Receiver Operating Characteristic Curve 的简称 , 中文名为“受试者工作特征曲线” 。 ROC 曲线源于军事领域,而后在医学领域应用甚广, “受试者工作特征曲线 ” 这一名称也正是来自于医学领域 。
在这里插入图片描述
在这里插入图片描述

问题:如何绘制ROC曲线?

分析与解答


在这里插入图片描述

问题:如何计算AUC?

分析与解答

问题:ROC曲线相比于P-R有什么特点?

分析与解答
本章第二小节曾介绍过同样被经常用来评估分类和排序模型的 P-R 曲线。相比 P-R 曲线, ROC 曲线奇一个特点,当 正负样本的分布发生 变化时, ROC 曲线的形状能够基本保持不变,而 P-R 曲线的形状一般 会发生较剧烈的变化 。
举例来说 3 圄 2.3是 ROC 曲线和 P-R曲线的对比图 , 其中图 2.3( a)和国 2.3 ( c )是 ROC 曲线,圄 2.3 ( b )和国 2.3 ( d )是 P-R 由线,圄 2.3
( c )和国 2.3 ( d )则是将测试集中的负样本数量增加 10信后的曲线圄。

可以看出, P-R 曲线发生了明显的变化,而 ROC 曲线形状基本不 变 。 这个特点让 ROC 曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能 。这有什么实际意义呢?在很多实际问题中 ,正负样本数量往往很不均衡 。 比如,计算广告领域经常涉及转化率模型,正样本的数量往往是负样本数量的 1/1000 甚至 1/10000。 若选择不同的测试集,P-R 曲线的变化就会非常大,而 ROC 曲线则能够更加稳定地反映模型本身的好坏。所以,ROC 曲线的适用场景更多,被广泛用于排序、推荐 、 广告 等领域。 但需要注意的是,选撵 P-R 曲线 还是 ROC 曲线是因实际问题而异的,如果研究者希望更多地看到模型在特定数据集上的表现,P-R曲线则能够更直观地反映真性能。

第3节 余弦距离的应用

场景描述
本童的主题是模型评估,但真实在模型训练过程中,我们也在不断地评估着样本间的距离,如何评估样本距离也是定义优化目标和训练方法的基础 。
在机器学习问题中,通常将特征表示为向量的形式,所以在分析两个特征向量之间的相似性时,常使用余弦相似度来表示。余弦相似度的取值范围是[-1,1],相同的两个向量之间的相似度为 1。 如果希望得到类似于距离的表示,将 1 减去余弦相似度即为余弦距离 。 因此,余弦距离的取值范围为[0,2],相同的两个向量余弦距离为 0。

知识点
余弦相似度,余弦距离,欧氏距离,距离的定义

问题
结合你的学习和研究经历,探讨为什么在一些场景中要使用余
弦相似度而不是欧式距离?

分析与解答

总体来说 , 欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。
例如,统计两部剧的用户观看行为,用户A的观看向量为 (0, 1),用户 B 为( 1,0);,此时二者的余弦距离很大, 而欧氏距离很小, 我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当使用余弦距离。

而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单位:分钟)作为特征时,余弦距离会认为( 1, 10)、 (10,100)两个用户距离很近,但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。

问题
余弦距离是否是一个严格定义的距离?

分析与解答
该题主要考察面试者对距离的定义的理解,以及简单的反证和推导。

首先看距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性,对称性, 三角不等式)成立,则该实数可称为这对元素之间的距离。
百面机器学习总结笔记(第二章 模型评估)_第3张图片
百面机器学习总结笔记(第二章 模型评估)_第4张图片

显然在单f立圆上,余弦距离和l政氏距离的范围都是[0,2]。我们已知l欧氏距离是一个合法的距离,而余弦距离与欧氏距离奇二次关系,自然不满足三角不等式。

在机器学习领域,被俗称为距离,却不满足三条距离公理的不仅仅有余弦距离,还有 KL 距离( Kullback-Leibler Divergence ),也叫作相对熵, E常用于计算两个分布之间的差异,但不满足对称性和三角不等式。

第4节 A/B的陷阱

场景描述
在E联网公司中, A/B 测试是验证新模块、新功能、新产品是否高效,新算法、新模型的效果是否有提升,新设计是否受到用户欢迎,新更改是否影响用户体验的主要测试方法。在机器学习领域中,A/B 测试是验证模型最终效果的主要手段。

知识点
A/B测试, 实验组, 对照组

问题
在对模型进行过充分的离线评价之后,为什么还要进行在线
A/B 测试?

分析与解答
需要进行在结 A/B 测试的原因如下 。

( 1 )离线评估无法完全消除模型过拟合的影响,因此,得出的离
线评估结果无法完全替代线上评估结果 。

( 2 )离线评估无法完全还原线上的工程环境。 一 般来讲,离线评
估往往不会考虑线上环境的延迟 、数据丢失、标签数据缺失等情况 。 因 此,离线评估的结果是理想工程环境下的结果 。

( 3 )线上系统的某些商业指标在离结评估中无法计算。离结评估一般是针对模型本身进行评估,而与模型相关的其他指标,特别是商业 指标,往往无法直接获得 。 比如,上结了新的推荐算法 3 离线评估往往 关注的是 ROC 由线、 P-R 曲线等的改进 3 而线上评估可以全面了解该 推荐算法带来的用户点击率、留存时长、 PV 访问量等的变化 。 这些都要由 A/B 测试来进行全面的评估。

问题
如何进行线上A/B测试?

分析与解答
进行 A/B 测试的主要手段是进行用户分桶,即将用户分成实验组对照组,对实验组的用户施以新模型 ,对对照组的用户施以旧模型 。在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到同一个桶中,在分桶过程中所选取的 user id 需要 是一个随机数,这样才能保证桶中的样本是无偏的。

问题
如何划分实验组和对照组?

分析与解答
上述 3 种 A/B 测试的划分方法都不正确 。 我们用包含关系圄来说明三种划分方法 ,如圄 2.4 所示 。方法 1 (见圄 2.4 ( a) )没有区分是否为美国用户,实验组相对照组的实验结果均有稀释;方法 2 (见 图 2.4 ( b ) )的实验组选取无误,并将其余所高用户划分为对照组, 导致对照组的结果被稀释,方法 3 (见国 2.4 ( c) )的对照组存在偏差。正确的做法是将所有美国用户根据 user id 个位数划分为试验组合对照组(见圄2.4(d) ),分别施以模型A和B才能够验证模型A的效果。

第5节 模型评估的方法

场景描述
在机器学习中,我们通常把样本分为训练集和测试集,训练集用于训练模型,测试集用于评估模型。在样本划分和模型验证的过程中 ,存在着不同的抽样方法和验证方法 。本小节主要考察面试者是否熟知这些方法及其优缺点、是否能够在不同问题中挑选合适的评估方法。

知识点
Holdout 检验,交叉验证,自助法( Bootstrap ),微积分

问题:在模型评估中,有哪些主要的评估方法,他们的优缺点是什么?



问题:在自助法的采样过程中,对 n 个样本进行n次自助采样,当n趋于无穷大时,最终有多少数据从来被选择过?

分析与解答
在这里插入图片描述
在这里插入图片描述

第6节 超参数调优

场景描述
对于很多算法工程师来说 ,超参数调优是件非常头疼的事。除了根据经验设定所谓的“合理值”之外,一般很难找到合理的方法去寻找超参数的最优取值。而与此同时,超参数对于模型效果的影响又至关重要。有没有一些可行的办法去进行超参数的调优呢?

问题:超参数有哪些调优方法?

分析与解答
为了进行超参数调优,我们一般会采用网格搜索随机搜索贝叶斯优化等算法。在具体介绍算法之前,需要明确超参数搜索算法一般包括聊几个要素。
一是目标函数,即算法需要最大化/最小化的目标
二是搜索范围,一般通过上限和下限来确定
三是算法的其他参数,如搜索步长 。

网格搜索
网格搜索可能是最简单、应用最广泛的超参数搜索算法 , 它通过查
找搜索范围内的所有的点来确定最优值。
如果采用较大的搜索范围以及较小的步长,网恪搜索高很大概率找到全局最优值。 然而,这种搜索方案十分消耗计算资源和时间,特别是需要调优的超参数比较多的时候 。 因此,在实际应用中,网格搜索法一般会先使用较广的搜索范围和较大的步长,来寻找全局最优值可能的位置;然后会逐渐缩小搜索范围和步长,来寻找更精确的最优值。 这种操作方案可以降低所需的时间和计算量, 但由于目标函数一般是非凸的 ,所以很可能会错过全局最优值。

随机搜索
随机搜索的思想与网恪搜索比较相似 ,只是不再测试上界和下界之间的所有值,而是在搜索范围中随机选取样本点。它的理论依据是,如果样本点集足够大,那么通过随机采样也能大概率地找到全局最优值,或其近似值。随机搜索一般会比网恪搜索要快一些,但是和网恪搜索的快速版一样,它的结果也是没法保证的。

贝叶斯优化算法
贝叶斯优化算法在寻找最优最值参数时,采用了与网恪搜索、随机搜
索完全不同的方法。网恪搜索和随机搜索在测试一个新点时,会忽略前一 个点的信息,而贝叶斯优化算法则充分利用了之前的信息。
贝叶斯优化算法通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数。具体来说,它学习目标函数形状的方法是,首先根据先验分布,假设 一个搜集函数,然后,每一次使用新的采样点来测试 目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。对于贝叶斯优化算法,一个需要注意的地方,一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。为了弥补这个缺陷,贝叶斯优化算法会在探索和利用之间找到一个平衡点, “探索”就是在还未取样的区域获取采样点;而“利用”则是根据后验分布在最可能出现全局最值的区域进行采样。

第7节 过拟合与欠拟合

场景描述
在模型评估与调整的过程中,我们往往会遇到“过拟合”或“欠拟合”的情况 。 如何有效地识别 “过拟台”和“欠拟合"现象 ,并有针对性地进行模型调整 ,是不断改进机器学习模型的关键。特别是在实际项目中,采用多种方法、从多个角度降低“过拟合”和“欠拟合”的风险是算法工程师应当真备的领域知识。

知识点
过拟合、欠拟合

问题:在模型评估时,过拟合与欠拟合具体是什么现象?

分析与解答
过拟合是指模型对于训练数据拟合呈过当的情况,
反映到评估指标上 ,就是模型在训练集上的表现很好,但在测试集和新数据上的表现较差 。

欠拟台娼的是模型在训练和预测时表现都不好的情况。
图 2.5 形象地描述了过拟台和欠拟台的区别 。
在这里插入图片描述

问题:能否说出几种降低过拟合与欠拟合风险的方法?

分析与解答

你可能感兴趣的:(算法岗面试笔试准备,百面机器学习,模型评估)