《机器学习高频面试题详解》1.12:GBDT算法

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

前言

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

目前这篇是试读,后续的文章需要订阅才能查看哦,专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!

本文大纲

一、原理

1. 提升树模型

2. 梯度提升树

二、面试真题

1. AdaBoost与GBDT对比有什么不同?

2. RF与GBDT之间的区别与联系?

3. GBDT需要特征归一化吗?

4. GBDT如何实现正则化?

5. GBDT算法优缺点?

一、原理

1. 提升树模型

Boosting策略采用加法模型(基分类器的线性组合)与前向分布算法,将多个弱分类器集成为一个强分类器。提升树算法是以分类树或回归树作为基分类器的提升算法,可以表示为:

f_M(x)=\sum\limits_{m=1}^{M}T(x;\Theta_m),其中T(x;\Theta_m)表示决策树,\Theta_m为决策树的参数,M为树的个数。

提升树采用前向分布算法,先初始化提升树f_0(x)=0,假设第m-1步的模型为f_{m-1}(x),则下一步模型为:

f_m(x)=f_{m-1}(x)+T(x;\Theta_m)

通过极大似然估计可以确定第m颗树的参数:

\hat{\Theta_m}=\mathop{\arg\min}\limits_{\theta_m}\sum\limits_{i=1}^{N}L(y_i,f_{m-1}(x_i)+T(x_i;\Theta_m))

不同问题对应着不同的损失函数,比如分类问题常用指数损失函数:L(y,f(x))=exp[-yf(x)],回归问题常用平方损失函数:L(y,f(x))=(y-f(x))^2

以平方损失函数为例,损失函数为:L(y_i,f_{m-1}(x_i)+T(x_i;\Theta_m))=[y-f_{m-1}(x)-T(x;\Theta_m)]^2=[r-T(x;\Theta_m)]^2,其中r=y-f_{m-1}(x)是当前模型拟合数据的残差。所以,对于回归问题的提升树算法来说,只需简单地拟合当前模型的残差。

2. 梯度提升树

当损失函数是平方损失和指数损失函数时,前向分布算法的每一步优化是比较简单的,但对于一般损失函数而言,与优化目标的拟合不好度量,损失函数各种各样,需要找到一种通用的拟合方法。

梯度提升树GBDT参考

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

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

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

全部评论
我才发现第一章的名字叫监督学习
点赞 回复 分享
发布于 2023-02-28 10:42 北京
点赞 回复 分享
发布于 2023-02-28 10:44 北京
您好,请教一下,为什么“提升树算法是以分类树或回归树作为基分类器的提升算法”,但比较RF和GBDT时说“组成随机森林的数可是分类树也可以是回归树,而GBDT只由回归树组成”呢
点赞 回复 分享
发布于 01-19 15:24 北京

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
4 8 评论
分享
牛客网
牛客企业服务