机器学习面试题 - 模型评估2

news2024/9/20 18:54:54

目录标题

      • 8、为什么在一些场景中要使用余弦相似度而不是欧氏距离?
      • 9、余弦距离是否是一个严格定义的距离?
      • 10、在对模型进行过充分的离线评估之后,为什么还要进行在线A/B测试?
      • 11、如何进行线上A/B测试?
      • 12、如何划分实验组和对照组
      • 13、在模型评估过程中,有哪些主要的验证方法,它们的优缺点是什么?
      • 14、在自助法的采样过程中,对n个样本进行n次自助抽样,当n趋于无穷大时,最终有多少数据从未被选择过?
      • 15、超参数有哪些调优方法?
        • 15.1 网格搜索
        • 15.2 随机搜索
        • 15.3 贝叶斯优化
      • 16、在模型评估过程中,过拟合和欠拟合具体是指什么现象?
      • 17、说出几种降低过拟合和欠拟合风险的方法
        • 17.1 降低“过拟合”风险的方法
        • 17.2 降低“欠拟合”风险的方法

8、为什么在一些场景中要使用余弦相似度而不是欧氏距离?

用来评估样本间的距离—
在这里插入图片描述

对于两个向量A和B,其余弦相似度定义为 ,即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心它们的绝对大小,其取值范围是[−1,1]。

当一对文本相似度的长度差距很大、但内容相近时,如果使用词频或词向量作为特征,它们在特征空间中的的欧氏距离通常很大;而如果使用余弦相似度的话,它们之间的夹角可能很小,因而相似度高。此外,在文本、图像、视频等领域,研究的对象的特征维度往往很高,余弦相似度在高维情况下依然保持“相同时为1,正交时为0,相反时为−1”的性质,而欧氏距离的数值则受维度的影响,范围不固定,并且含义也比较模糊。

总体来说,欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。特定的度量方法适用于什么样的问题。

例如:
统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);此时二者的余弦距离很大,而欧氏距离很小;我们分析两个用户对于不同
视频的偏好,更关注相对差异,显然应当使用余弦距离。
而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单位:分钟)作为特征时,余弦距离会认为(1,10)、(10,100)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。

9、余弦距离是否是一个严格定义的距离?

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

余弦距离满足正定性和对称性,但是不满足三角不等式,因此它并不是严格定义的距离。具体来说,对于向量A和B,三条距离公理的证明过程如下。

  • 正定性
    在这里插入图片描述
    在这里插入图片描述
  • 对称性
    在这里插入图片描述
  • 三角不等式
    在这里插入图片描述

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

在互联网公司中,A/B 测试是验证新模块、新功能、新产品是否有效,新算法、新模型的效果是否有提升,新设计是否受到用户欢迎,新更改是否影响用户体验的主要测试方法。

需要进行在线A/B测试的原因如下:

  • 离线评估无法完全消除模型过拟合的影响,因此,得出的离线评估结果无法完全替代线上评估结果。
  • 离线评估无法完全还原线上的工程环境。一般来讲,离线评估往往不会考虑线上环境的延迟、数据丢失、标签数据缺失等情况。因此,离线评估的结果是理想工程环境下的结果。
  • 线上系统的某些商业指标在离线评估中无法计算。离线评估一般是针对模型本身进行评估,而与模型相关的其他指标,特别是商业指标,往往无法直接获得。比如,上线了新的推荐算法,离线评估往往关注的是ROC曲线、P-R曲线等的改进,而线上评估可以全面了解该推荐算法带来的用户点击率、留存时长、PV访问量等的变化。这些都要由A/B测试来进行全面的评估。

11、如何进行线上A/B测试?

进行A/B测试的主要手段是进行用户分桶,即将用户分成实验组和对照组,对实验组的用户施以新模型,对对照组的用户施以旧模型。

在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到同一个桶中,在分桶过程中所选取的user_id需要是一个随机数,这样才能保证桶中的样本是无偏的。

12、如何划分实验组和对照组

选定目标用户,可以根据user_id(user_id完全随机生成)个位数的奇偶性将用户划分为实验组和对照组

13、在模型评估过程中,有哪些主要的验证方法,它们的优缺点是什么?

  1. Holdout检验
    Holdout 检验是最简单也是最直接的验证方法,它将原始的样本集合随机划分成训练集和验证集两部分。
    比方说,对于一个点击率预测模型,我们把样本按照70%~30% 的比例分成两部分,70% 的样本用于模型训练;30% 的样本用于模型验证,包括绘制ROC曲线、计算精确率和召回率等指标来评估模型性能。
    Holdout 检验的缺点很明显,即在验证集上计算出来的最后评估指标与原始分组有很大关系。为了消除随机性,研究者们引入了“交叉检验”的思想。

  2. 交叉检验
    k-fold交叉验证:首先将全部样本划分成k个大小相等的样本子集;依次遍历这k个子集,每次把当前子集作为验证集,其余所有子集作为训练集,进行模型的训练和评估;最后把k次评估指标的平均值作为最终的评估指标。在实际实验中,k经常取10。
    留一验证:每次留下1个样本作为验证集,其余所有样本作为测试集。样本总数为n,依次对n个样本进行遍历,进行n次验证,再将评估指标求平均值得到最终的评估指标。
    在样本总数较多的情况下,留一验证法的时间开销极大。留一验证是留p验证的特例。因此它的时间开销更是远远高于留一验证,故而很少在实际工程中被应用。

  3. 自助法
    不管是Holdout检验还是交叉检验,都是基于划分训练集和测试集的方法进行模型评估的。然而,当样本规模比较小时,将样本集进行划分会让训练集进一步减小,这可能会影响模型训练效果。有没有能维持训练集样本规模的验证方法呢?
    自助法是基于自助采样法的检验方法。对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集,进行模型验证,这就是自助法的验证过程。

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

在这里插入图片描述
在这里插入图片描述

15、超参数有哪些调优方法?

除了根据经验设定所谓的“合理值”之外,一般很难找到合理的方法去寻找超参数的最优取值。而与此同时,超参数对于模型效果的影响又至关重要。

为了进行超参数调优,我们一般会采用网格搜索、随机搜索、贝叶斯优化等算法。

需要明确超参数搜索算法一般包括哪几个要素。一是目标函数,即算法需要最大化/最小化的目标;二是搜索范围,一般通过上限和下限来确定;三是算法的其他参数,如搜索步长。

15.1 网格搜索

网格搜索可能是最简单、应用最广泛的超参数搜索算法,它通过查找搜索范围内的所有的点来确定最优值。

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

15.2 随机搜索

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

15.3 贝叶斯优化

网格搜索和随机搜索在测试一个新点时,会忽略前一个点的信息;而贝叶斯优化算法则充分利用了之前的信息。贝叶斯优化算法通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数。

具体来说,它学习目标函数形状的方法是,首先根据先验分布,假设一个搜集函数;然后,每一次使用新的采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。

对于贝叶斯优化算法,有一个需要注意的地方,一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。为了弥补这个缺陷,贝叶斯优化算法会在探索和利用之间找到一个平衡点,“探索”就是在还未取样的区域获取采样点;而“利用”则是根据后验分布在最可能出现全局最值的区域进行采样。

16、在模型评估过程中,过拟合和欠拟合具体是指什么现象?

过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现较差。欠拟合指的是模型在训练和预测时表现都不好的情况。
在这里插入图片描述

17、说出几种降低过拟合和欠拟合风险的方法

17.1 降低“过拟合”风险的方法

  1. 从数据入手,获得更多的训练数据。
    使用更多的训练数据是解决过拟合问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响。
    当然,直接增加实验数据一般是很困难的,但是可以通过一定的规则来扩充训练数据。比如,在图像分类的问题上,可以通过图像的平移、旋转、缩放等方式扩充数据;更进一步地,可以使用生成式对抗网络来合成大量的新训练数据。

  2. 降低模型复杂度。
    在数据较少时,模型过于复杂是产生过拟合的主要因
    素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。例如,在神经网络模型中减少网络层数、神经元个数等;在决策树模型中降低树的深度、进行剪枝等。

  3. 正则化方法
    给模型的参数加上一定的正则约束,比如将权值的大小加入到损失函数中。以L2正则化为例:这样,在优化原来的目标函数C0的同时,也能避免权值过大带来的过拟合风险。
    在这里插入图片描述

  4. 集成学习方法。集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险,如Bagging方法。

17.2 降低“欠拟合”风险的方法

  1. 添加新特征。当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。
    通过挖掘“上下文特征”“ID类特征”“组合特征”等新的特征,往往能够取得更好的效果。在深度学习潮流中,有很多模型可以帮助完成特征工程,如因子分解机、梯度提升决策树、Deep-crossing等都可以成为丰富特征的方
    法。

  2. 增加模型复杂度。简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。
    例如,在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。

  3. 减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT落地场景探索-数据库与大模型

目录 openGauss介绍 openGauss介绍 数据库与大模型 openGauss介绍 大模型与数据库 大模型为数据库带来的机遇 大模型解决数据库问题的挑战 数据库为大模型带来的价值 大模型大模型的发展趋势 趋势产品:Chat2DB 简介 特性 生产应用:基…

运输层:TCP超时重传时间的选择

1.运输层&#xff1a;TCP超时重传时间的选择 笔记来源&#xff1a; 湖科大教书匠&#xff1a;TCP超时重传时间的选择 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 若将超时重传时间RTO < \lt < 报文段0的往返时间RTT0&#xff0c;则会出现…

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、农业、大气等领域数据分析

查看原文>>> ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、农业、大气等领域数据分析 【内容简述】&#xff1a; 注&#xff1a;请提前自行配置上课环境 【其它相关推荐】&#xff1a; GEE遥感云大数据林业应用典型案例实践及GPT模型应用 基…

【Ubuntu】apt 更换阿里源

Ubuntu apt 更换阿里源 1.Ubuntu apt 更换阿里源1.1 找到阿里官方相关镜像1.2 找到apt的源管理文件1.3 使用命令替换其源地址1.4 刷新源信息1.5 Failed to fetch http://xxxxxxx Temporary failure resolving ‘mirrors.aliyun.com‘ 1.Ubuntu apt 更换阿里源 1.1 找到阿里官方…

Java 设计模式 随笔1 监听器/观察者

0. 不由自主&#xff0c;恍恍惚惚&#xff0c;又走回头路&#xff0c;再看一眼有过的幸福… 太棒了流沙!!! 0.1 引用 https://blog.csdn.net/majunzhu/article/details/100869562 ApplicationEvent事件机制源码分析 单机环境下优雅地使用事件驱动进行代码解耦 1. JDK 1.1 …

LAXCUS分布式操作系统总体概述

本文回答用户问的一些情况&#xff0c;因为问题主要集中LAXCUS分布式操作系统的产品、市场、发展层面&#xff0c;技术问题倒是不多&#xff0c;我在这里做个总体概述的回答吧。 LAXCUS分布式操作系统是基于分布式运行环境构建的【数存算管】超融合一体化平台&#xff0c;处理…

Excel 合并单元格筛选时只出现首行

一、问题描述 如果对合并单元格直接筛选&#xff0c;只能筛选出第一个单元格的值 二、原因分析&#xff1a; Excel筛选单元格时&#xff0c;遇到不连续区域&#xff08;即中间有空白单元格&#xff09;会识别不到后续内容&#xff1b; 合并单元格后&#xff0c; 除首行外&…

测试中那些悲桑的。。。

今天不讲“锅”&#xff0c;也不讲知识&#xff0c;只聊聊我们在测试中那些悲桑的故事。鉴于过于真实&#xff0c;请新人慎看。 - 1 - 实验室环境中测试顺利进行&#xff0c; 一到发版时刻&#xff0c; 哦豁&#xff0c;出现了一个惊天大bug&#xff01; 通宵走起~ - 2 - 辛…

【机器学习核心总结】什么是RNN(循环神经网络)

什么是RNN(循环神经网络) 循环神经网络(Recurrent Neural Network)&#xff0c;在识别图像时&#xff0c;输入的每张图片都是孤立的&#xff0c;认出这张图片是苹果&#xff0c;并不会对认出下一张图片是梨造成影响。 但对语言来说&#xff0c;顺序是十分重要的&#xff0c;“…

六、计算机视觉相关内容

文章目录 前言一、图像增广1.1 常用的图像增广1.1.1 翻转和裁剪1.1.2 变换颜色1.1.3 结合多种图像增广方法 二、微调2.1 微调的步骤2.2 具体案例 三、 目标检测和边界框3.1 边界框 四、锚框五、多尺度目标检测六、目标检测数据集七、单发多框检测(SSD)八、区域卷积神经网络(R-C…

【NLP】分步图解transformer 数学示例

一、说明 我知道transformer 架构可能看起来很可怕&#xff0c;你可能在网上或博客上遇到了各种解释。但是&#xff0c;在我的博客中&#xff0c;我将通过提供一个全面的数值示例来努力澄清它。通过这样做&#xff0c;我希望简化对变压器架构的理解。 二、输入和位置编码 让我…

网络编程-day3

UDP服务器&#xff1a; UDP客户端&#xff1a;

go-redis的基本使用

Golang操作Redis 安装go-redis //redis 6 go get github.com/go-redis/redis/v8 //redis 7 go get github.com/go-redis/redis/v9golang连接redis import "github.com/go-redis/redis/v8" var rdb *redis.Clientfunc init() {rdb : redis.NewClient(&redis.Opt…

云原生之深入解析Prometheus AlertManager的实战操作

一、概述 Prometheus 包含一个报警模块&#xff0c;就是 AlertManager&#xff0c;Alertmanager 主要用于接收 Prometheus 发送的告警信息&#xff0c;它支持丰富的告警通知渠道&#xff0c;而且很容易做到告警信息进行去重、降噪、分组等&#xff0c;是一款前卫的告警通知系统…

Android Studio实现内容丰富的安卓校园二手交易平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号038 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看二手商品…

[学习笔记] 扩散模型 Diffusion

前置知识-从深度生成模型、隐变量、VAE开始 机器学习是人工智能的一种&#xff0c;它是一种通过利用数据&#xff0c;训练出模型&#xff0c;然后使用模型预测的一种方法。 机器学习分为监督学习、无监督学习和强化学习&#xff0c;这是根据数据训练方式分类的&#xff0c;通俗…

leetcode 100. 相同的树

2023.7.6 这题类似于树的对称性这道题&#xff0c;下面给出递归和迭代两种解法&#xff1a; 递归法&#xff1a; class Solution { public:bool isSameTree(TreeNode* p, TreeNode* q) {if(pnullptr && qnullptr) return true;if(pnullptr && q!nullptr || p…

python实现文本转语音音频

文章目录 文本转语音音频第一步&#xff1a;讯飞平台的注册第二步&#xff1a;导入程序所需要的依赖库第二步&#xff1a;websocket对象类的初始化第三步&#xff1a;websocket建立连接后的函数第四步&#xff1a;websocket数据返回结果的处理函数第五步&#xff1a;pcm音频转换…

VALSE 20200415 | 机器学习 vs 压缩感知:核磁共振成像与重建

【Talk】VALSE 20200415 | 机器学习 vs 压缩感知&#xff1a;核磁共振成像与重建 文章目录 【Talk】VALSE 20200415 | 机器学习 vs 压缩感知&#xff1a;核磁共振成像与重建Deep learning for MR imaging and analysis - Shanshan WangMachine Learning for CS MRI: From Model…

Spring Boot 中的视图解析器是什么,如何使用

Spring Boot 中的视图解析器是什么&#xff0c;如何使用 在 Spring Boot 中&#xff0c;视图解析器是将视图名称解析为具体视图对象的组件。视图对象可以是 JSP、FreeMarker、Thymeleaf 等模板引擎生成的 HTML 页面&#xff0c;也可以是 JSON、XML 等格式的数据响应。Spring B…