《机器学习高频面试题详解》1.13:XGBoost算法(下)

点击上方卡片链接就可以进入专栏,专栏右上角有订阅选项,欢迎大家订阅~

前言

大家好,我是鬼仔,今天带来《机器学习高频面试题详解》专栏的第1.13节:XGBoost算法(下)。这是鬼仔第一次开设专栏,每篇文章鬼仔都会用心认真编写,希望能将每个知识点讲透、讲深,帮助同学们系统性地学习和掌握机器学习中的基础知识,希望大家能多多支持鬼仔的专栏~

算法原理见上篇,这篇解析XGBoost算法高频面试真题。目前这篇是试读,后续的文章需要订阅才能查看哦,专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!

面试真题

1. XGBoost为什么要泰勒展开

1)精准性:相对于GBDT的一阶泰勒展开,XGBoost采用二阶泰勒展开,可以更为精准的逼近真实的损失函数

2)可扩展性:损失函数支持自定义,只需要新的损失函数二阶可导。

2. GBDT和XGBoost的区别

1)基分类器:传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器。

2)二阶导数:GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。

3)正则项:在使用CART作为基分类器时,XGBoost显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。

4)列采样:传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机森林相似的策略,支持对数据进行采样,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。

5)缺失值处理:传统的GBDT没有设计对缺失值进行处理,XGBoost可以为缺失值或者特定值指定分支的默认方向,对特征值有缺失的样本可以自动学习出他的分裂方向。

6)并行化:XGBoost支持并行,可以在特征粒度上并行,在训练前对特征进行分块排序,在寻找最佳分裂点的时候可以并行化计算,大大提升速度。

7)Shrinkage(缩减):相当于学习速率(xgboost中的eta)。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。实际应用中,一般把eta设置得小一点,然后迭代次数设置得大一点。(补充:传统GBDT的实现也有学习速率)

3. 简单介绍一下XGBoost

1)先讲GBDT原理:它是一种基于boosting增强策略的加法模型,采用前向分布算法进行训练,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值的残差(负梯度表示)。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机器学习高频面试题详解 文章被收录于专栏

专栏作者曾在校招期间拿到包括字节、微信和华为等多家大厂的SSP offer,该专栏主要是为了帮助同学们系统性地学习和掌握机器学习中的基础知识。专栏详细地整理了各大厂的算法岗面经,力争深入浅出地讲解重要知识点,适合人群为准备校招或者实习,且目标岗位为算法岗、数据挖掘岗或者数据分析岗的同学。

全部评论
点赞 回复 分享
发布于 2023-03-16 11:49 北京
点赞 回复 分享
发布于 2023-03-16 11:49 北京
催更催更,都过了十天了
点赞 回复 分享
发布于 2023-03-24 15:42 美国

相关推荐

躺尸修仙中:因为很多92的也去卷中小厂,反正投递简历不要钱,面试不要钱,时间冲突就推,不冲突就面试积累经验
点赞 评论 收藏
分享
评论
8
44
分享
牛客网
牛客企业服务