数据挖掘面试题之gbdt

 1、梯度提升树GBDT回归

GBDT 模型 数据 型不做任何限制,既可以是 连续 的数 型,也可以是离散的字符型
(但在 Python 的落地 程中,需要将字符型 量做数 理或 哑变 理)。相 SVM 模型
少参数的 GBDT 具有更高的准确率和更少的运算 时间 GBDT 模型在面 异常数据
具有更 定性。由于上面的种种 点,使得越来越多的企 或用 在数据挖掘或机器学
习过 程中 选择 使用,同 时该 算法也是 常出没于各种大数据 竞赛 中,并且 好的成
 
 
 
 

2. GBDT分类算法


GBDT无论用于分类还是回归,一直使用的是CART回归树。GBDT不会因为我们所选择的任务是分类任务就选用分类树,这里的核心原因是GBDT每轮的训练是在上一轮训练模型的负梯度值基础之上训练的。这就要求每轮迭代的时候,真实标签减去弱分类器的输出结果是有意义的,即残差是有意义的。如果选用的弱分类器是分类树,类别相减是没有意义的。对于这样的问题,可以采用两种方法来解决:

采用指数损失函数,这样GBDT就退化成了Adaboost,能够解决分类的问题;
使用类似于逻辑回归的对数似然损失函数,如此可以通过结果的概率值与真实概率值的差距当做残差来拟合;
下面我们就通过二分类问题,去看看GBDT究竟是如何做分类的。

 

 

 

GBDT的优点:

(1)可用于所有回归问题(包括线性和非线性问题)

(2)可构造组合特征,通常用GBDT构造的组合特征加上原来的特征一起输入LR模型做分类

(3)可得到特征的重要权重值

GBDT正则化


和Adaboost一样,我们也需要对GBDT进行正则化,防止过拟合。GBDT的正则化主要有三种方式。 
   

  1. 第一种是和Adaboost类似的正则化项,即步长(learning rate)。对于同样的训练集学习效果,较小的νν意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。 
  2. 第二种正则化的方式是通过子采样比例(subsample)。取值为(0,1]。注意这里的子采样和随机森林不一样,随机森林使用的是放回抽样,而这里是不放回抽样。如果取值为1,则全部样本都使用,等于没有使用子采样。如果取值小于1,则只有一部分样本会去做GBDT的决策树拟合。选择小于1的比例可以减少方差,即防止过拟合,但是会增加样本拟合的偏差,因此取值不能太低。推荐在[0.5, 0.8]之间。 使用了子采样的GBDT有时也称作随机梯度提升树(Stochastic Gradient Boosting Tree, SGBT)。由于使用了子采样,程序可以通过采样分发到不同的任务去做boosting的迭代过程,最后形成新树,从而减少弱学习器难以并行学习的弱点。这里其实引入了bagging的思想,所以GBDT能够有效地抵御训练数据中的噪音,具有更好的健壮性。(降低方差)
  3. 第三种是对于弱学习器即CART回归树进行正则化剪枝。在决策树原理篇里我们已经讲过,这里就不重复了。

参考:这几篇gbdt就比较深刻理解了

https://www.cnblogs.com/peizhe123/p/6105696.html  CART分类与回归树与GBDT(Gradient Boost Decision Tree)

https://www.cnblogs.com/moonyue/p/11214186.html  Boosting算法之Adaboost和GBDT  

https://blog.csdn.net/program_developer/article/details/103060416  深入理解GBDT二分类算法

 https://blog.csdn.net/qq_32742009/article/details/81346636 【机器学习】集成学习之梯度提升树GBDT

发布了86 篇原创文章 · 获赞 1 · 访问量 8207

猜你喜欢

转载自blog.csdn.net/a1272899331/article/details/104728313