2021机器学习面试必考面试题汇总(附答案详解)

article/2025/9/9 7:47:43

问题:Xgboost、lightGBM和Catboost之间的异同?

树的特征

三种算法基学习器都是决策树,但是树的特征以及生成的过程仍然有很多不同。

CatBoost使用对称树,其节点可以是镜像的。CatBoost基于的树模型其实都是完全二叉树。

XGBoost的决策树是Level-wise增长。Level-wise可以同时分裂同一层的叶子,容易进行多线程优化,过拟合风险较小,但是这种分裂方式也有缺陷,Level-wise对待同一层的叶子不加以区分,带来了很多没必要的开销。

实际上很多叶子的分裂增益较低,没有搜索和分裂的必要。 LightGBM的决策树是Leaf-wise增长。每次从当前所有叶子中找到分裂增益最大的一个叶子(通常来说是数据最多的一个),其缺陷是容易生长出比较深的决策树,产生过拟合,为了解决这个问题,LightGBM在Leaf-wise之上增加了一个最大深度的限制。

对于类别型变量

调用boost模型时,当遇到类别型变量,xgboost需要先处理好,再输入到模型,而lightgbm可以指定类别型变量的名称,训练过程中自动处理。

具体来讲,CatBoost 可赋予分类变量指标,进而通过独热最大量得到独热编码形式的结果(独热最大量:在所有特征上,对小于等于某个给定参数值的不同的数使用独热编码;同时,在 CatBoost 语句中设置“跳过”,CatBoost 就会将所有列当作数值变量处理)。

LighGBM 也可以通过使用特征名称的输入来处理属性数据;它没有对数据进行独热编码,因此速度比独热编码快得多。LGBM 使用了一个特殊的算法来确定属性特征的分割值。(注:需要将分类变量转化为整型变量;此算法不允许将字符串数据传给分类变量参数)

和 CatBoost 以及 LGBM 算法不同,XGBoost 本身无法处理分类变量,只接受数值数据,这点和RF很相似。实际使用中,在将分类数据传入 XGBoost 之前,必须通过标记编码、均值编码或独热编码等各种编码方式对数据进行处理。


文末免费送电子书:七月在线干货组最新 升级的《名企AI面试100题》免费送!

篇幅有限,仅展示部分题目,本篇文章面试题来源于七月在线官网,免费题库,近4000道名企AI笔试⾯试题等着⼤家,刷题愉快。


问题:SVM 和 Logistic 回归分别在什么情况下使用?

SVM 和 LR的选择实际上是模型预测能力和运行效率的权衡,从样本和特征数量的角度分析如下:

1. 若特征数量较大,样本数量较小(例如:1万个特征,1000个样本),则使用 LR。因为使用线性模型就能取得不错的效果,无需使用过于复杂的模型;

2. 若特征数量较小,样本数量中等(例如:10个特征,1万个样本),则使用高斯核函数的SVM。因为特征数较小,使用复杂核函数的SVM可以得到较好的预测性能,这一点胜过 LR,且样本数量中等,运算速度不会太慢;

3. 若特征数量中等,样本数量非常大(例如100个特征,50万个样本),则应该先构造更多的特征,然后使用LR。因为样本数量太大会导致SVM运算很慢,此时 LR 更有优势,应该引入更多的特征,来保证 LR 的预测性能。

结论:

(1)在工业界的实际使用中,SVM 用的不多,速度慢并且效果也很难保证。LR使用好的特征,加上正则化项可以取得不错的效果,上线后响应速度也快;

(2)LR 适合大规模特征和数据量级的场景,百万以上的特征或训练数据,一般都建议使用 LR;

(3)LR 可以得到一个概率值,在排序的场景下(如广告系统中的CTR预估)比较常用。

问题:为什么GBDT中叶子结点的分数是通过最小化损失函数得到的,而不是直接取平均或者多数表决?

GBDT的基模型为回归决策树。

(1)当损失函数为平方损失时,经验损失最小值对应的预测值为训练样本标记值的平均值,举例如下:

假设特征空间的划分已确定,如图所示:

R2 单元对应的预测值 c2 应该尽量使其中的训练样本的预测损失最小。使用平方误差作为损失函数,假设 R2 中有三个训练样本 ,则预测值为 c2 产生的损失为:

令损失函数的导数为零,可以求出损失函数取最小值时对应的预测输出值:

(2)当回归损失函数为更一般的情况时,也是类似的道理:求解损失函数最小时对应的预测值。

多数表决是分类问题预测值的求解方法,和GBDT没有关系。

问题:为什么xgboost不用后剪枝?

后剪枝计算代价太高了,合并一次叶节点就要计算一次测试集的表现,数据量大的情况下非常消耗时间,而且也并不是特别必要,因为这样很容易过拟合测试集。

问题:xgb和lgb在特征、数据并行上存在什么差异?

1)特征并行

lgbm特征并行的前提是每个worker留有一份完整的数据集,但是每个worker仅在特征子集上进行最佳切分点的寻找;worker之间需要相互通信,通过比对损失来确定最佳切分点;然后将这个最佳切分点的位置进行全局广播,每个worker进行切分即可。xgb的特征并行与lgbm的最大不同在于xgb每个worker节点中仅有部分的列数据,也就是垂直切分,每个worker寻找局部最佳切分点,worker之间相互通信,然后在具有最佳切分点的worker上进行节点分裂,再由这个节点广播一下被切分到左右节点的样本索引号,其他worker才能开始分裂。二者的区别就导致了lgbm中worker间通信成本明显降低,只需通信一个特征分裂点即可,而xgb中要广播样本索引。

2)数据并行

当数据量很大,特征相对较少时,可采用数据并行策略。lgbm中先对数据水平切分,每个worker上的数据先建立起局部的直方图,然后合并成全局的直方图,采用直方图相减的方式,先计算样本量少的节点的样本索引,然后直接相减得到另一子节点的样本索引,这个直方图算法使得worker间的通信成本降低一倍,因为只用通信以此样本量少的节点。xgb中的数据并行也是水平切分,然后单个worker建立局部直方图,再合并为全局,不同在于根据全局直方图进行各个worker上的节点分裂时会单独计算子节点的样本索引,因此效率贼慢,每个worker间的通信量也就变得很大。

3)投票并行(lgbm)

当数据量和维度都很大时,选用投票并行,该方法是数据并行的一个改进。数据并行中的合并直方图的代价相对较大,尤其是当特征维度很大时。大致思想是:每个worker首先会找到本地的一些优秀的特征,然后进行全局投票,根据投票结果,选择top的特征进行直方图的合并,再寻求全局的最优分割点。这个方法我没有找到很好的解释,因此,面试过程中答出前面两种我觉得就ok了吧。


帮助数千人成功上岸的《名企AI面试100题》书,电子版,限时免费送,评论区回复“100题”领取!

本书涵盖计算机语⾔基础、算法和⼤数据、机器学习、深度学习、应⽤⽅向 (CV、NLP、推荐 、⾦融风控)等五⼤章节,每⼀段代码、每⼀道题⽬的解析都经过了反复审查或review,但不排除可能仍有部分题⽬存在问题,如您发现,敬请通过官⽹/APP七月在线 - 国内领先的AI职业教育平台 (julyedu.com)对应的题⽬页⾯留⾔指出。

为了照顾⼤家去官⽹对应的题⽬页⾯参与讨论,故本⼿册各个章节的题⽬顺序和官⽹/APP题库内的题⽬展⽰顺序 保持⼀致。 只有100题,但实际笔试⾯试不⼀定局限于本100题,故更多烦请⼤家移步七⽉在线官⽹或 七⽉在线APP,上⾯还有近4000道名企AI笔试⾯试题等着⼤家,刷题愉快。


http://chatgpt.dhexx.cn/article/ox7HcHBC.shtml

相关文章

机器学习面试题之——简单介绍最小二乘

1、常用到的最小二乘场合:最小二乘法直线拟合,最小二乘法多项式(曲线)拟合,机器学习中线性回归的最小二乘法,系统辨识中的最小二乘辨识法,参数估计中的最小二乘法,等等。 2、为什么…

AI人工智能、机器学习 面试题(2022最新版)

人工智能、机器学习面试题总结,侧重于理解,回答供参考,欢迎讨论。 General 深度学习(Deep Learning, DL)和机器学习(Machine Learning, ML)的关系是什么? 深度学习是机器学习的子类…

面试官最爱用的统计学、数据科学、机器学习面试题答案

【导读】本文盘点了数据科学和机器学习面试中的常见问题,着眼于不同类型的面试问题。如果您计划向数据科学领域转行,这些问题一定会有所帮助。 技术的不断进步使得数据和信息的产生速度今非昔比,并且呈现出继续增长的趋势。此外,…

41个机器学习面试题

####41 Essential Machine Learning Interview Questions (with answers) <font color‘orange’&#xff0c;size5>一、算法理论 Q1: 什么是偏倚&#xff08;bias&#xff09;、方差&#xff08;variable&#xff09;均衡&#xff1f; 偏倚指的是模型预测值与真实值的…

推荐收藏,25道机器学习面试问题(附答案)

近年来&#xff0c;对深度学习的需求不断增长&#xff0c;其应用程序被应用于各个商业部门。各公司现在都在寻找能够利用深度学习和机器学习技术的专业人士。 在本文中&#xff0c;将整理深度学习面试中最常被问到的25个问题和答案。如果你最近正在参加深度学习相关的面试工作…

机器学习面试题之机器学习基础(一)

1、L1与L2正则化 他们都是可以防止过拟合&#xff0c;降低模型复杂度。 L1会趋向于产生少量的特征&#xff0c;而其他的特征都是0&#xff1b;L2会选择更多的特征&#xff0c;这些特征都会接近于0。L1在特征选择时非常有用&#xff0c;L2就只是一种规则化而已。 简单总结一下就…

机器学习面试必考面试题汇总—附解析

问题&#xff1a;xgboost对特征缺失敏感吗&#xff0c;对缺失值做了什么操作&#xff0c;存在什么问题 不敏感&#xff0c;可以自动处理&#xff0c;处理方式是将missing值分别加入左节点 右节点取分裂增益最大的节点将missing样本分裂进这个节点 。这种处理方式的问题在xgboo…

机器学习面试题——聚类算法

机器学习面试题——聚类算法 提示&#xff1a;互联网大厂经常考的传统机器学习算法 文章目录 机器学习面试题——聚类算法[TOC](文章目录) 题目k-means介绍一下&#xff0c;K-means的过程k-means优缺点k-means的簇&#xff08;k簇&#xff09;怎么选&#xff0c;K-means如何选取…

机器学习面试题目整理

0 调参技巧 清洗数据&#xff0c;数据预处理&#xff0c;数据增广是否使用预训练模型使用BN在过拟合后&#xff0c;使用正则化技巧如L1、L2、Dropout对于不均匀样本&#xff0c;使用重采样使用合适的优化器。第一&#xff0c;如果你关心快速收敛&#xff0c;使用自适应优化器&…

面试 | 22道机器学习常见面试题目

(1) 无监督和有监督算法的区别&#xff1f; 有监督学习&#xff1a;对具有概念标记&#xff08;分类&#xff09;的训练样本进行学习&#xff0c;以尽可能对训练样本集外的数据进行标记&#xff08;分类&#xff09;预测。这里&#xff0c;所有的标记&#xff08;分类&#xf…

最基本的25道深度学习面试问题和答案

近年来&#xff0c;对深度学习的需求不断增长&#xff0c;其应用程序被应用于各个商业部门。各公司现在都在寻找能够利用深度学习和机器学习技术的专业人士。在本文中&#xff0c;将整理深度学习面试中最常被问到的25个问题和答案。如果你最近正在参加深度学习相关的面试工作&a…

机器学习高频面试题(41道)

Q1: What’s the trade-off between bias and variance? 问题1: 什么是偏差&#xff08;bias&#xff09;、方差&#xff08;variable&#xff09;之间的均衡&#xff1f; Bias 是由于你使用的学习算法过度简单地拟合结果或者错误地拟合结果导致的错误。它反映的是模型在样本…

总结了200道经典的机器学习面试题(附参考答案)

刷题&#xff0c;是面试前的必备环节。本文总结了往年BAT机器学习面试题&#xff0c;干货满满&#xff0c;值得收藏。 想要入职大厂可谓是千军万马过独木桥。 为了通过层层考验&#xff0c;刷题肯定是必不可少的。本文根据网络在线发布的BAT机器学习面试1000题系列&#xff0…

微信小程序—域名配置(图文)

微信小程序—域名配置 1、微信公众平台登录 进入后选择‘开发’ 选择‘开发设置’ 域名配置&#xff0c;输入easy-mock即可&#xff08;因为我用的地址就是easy-mock&#xff0c;如果用的是豆瓣接口就直接域名配置成豆瓣的就行&#xff09; 2、打开右上角的详情 选择不校验…

微信小程序:小程序服务器域名配置合法域名

微信小程序开发过程中,微信小程序只要有网络请求就必定要用到服务器接口,这样的话就需要在微信小程序管理平台里面添加服务器的域名,而且添加的这个域名一定是合法有效的域名,不然就不会设置成功的。 微信小程序在生产环境下如果没有配置合法域名,是不能正常访问的,那就…

tomcat 配置域名

Tomcat 配置域名 在windows中首先找到conf下面的server.xml 把Connector 标签中的端口改成80 然后把添加一个Host name为域名appBase为路径 如下 Engine 标签也是 最后在C盘 windows\System32\drivers\etc 下面的hosts添加下面这行 127.0.0.1 www.test.com 重新启动tomcat …

vuepress(六)阿里云二级域名配置与添加SSL证书

文章目录 写在前面第一类&#xff1a;用来存放网站第二类&#xff1a;自定义 OSS对象存储 的图片路径 写在前面 这里是小飞侠Pan&#x1f973;&#xff0c;立志成为一名优秀的前端程序媛&#xff01;&#xff01;&#xff01; 本篇博客收录于我的github前端笔记仓库中&#x…

前端nginx配置并且同一域名配置多个项目以及nginx跨域设置

前端nginx配置并且同一域名配置多个项目 前端nginx配置并且同一域名配置多个项目first of all下载配置nginx配置nginx开机自启动nginx -t 找不到nginx的修复nginx进行重启Nginx同一个域名配置多个项目nginx按不同的目录分发给不同的项目启用二级域名&#xff0c;不同的项目分配…

vhosts.conf域名配置

DocumentRoot "网站目录" ServerName 域名&#xff08;比如www.baidu.com&#xff09; ServerAlias 域名别名&#xff08;www.baidu.com www.baidu.cn&#xff09; Directory 得与DocumentRoot目录相同

uniapp:小程序体验版和预览,云函数不响应,小程序域名配置

uniapp槽点 uniapp还是很便利的&#xff0c;为大家免费提供了低代码平台&#xff0c;很多插件和实现方案。使用过程中也有很多想吐槽的&#xff0c;我是第一次接触跨平台&#xff0c;文档上有的地方很笼统&#xff0c;比如这域名配置&#xff0c;文档就没说我应该配置哪个域名…