GBDT算法梳理

梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT),是多棵树的输出预测值的累加,GBDT的树都是回归树。

GBDT的思想可以用一个通俗的例子解释,假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。

 

1 前向分布算法

前向分布算法求解这一问题的优化方法是:每次只学习一个基函数及系数,逐步逼近最优解。

具体的前向分布算法为:

 

其中fm(xi)=fm-1(xi)+Bb(xi;r)  fm-1(xi)是已知的,所以每次优化Bb(xi;r)

 

参考:https://blog.csdn.net/kateswall/article/details/70765767

2.负梯度拟合

我们希望找到一个 f(x) 使得 L(y, f(x)) 最小,那么 f(x) 就得沿着使损失函数L减小的方向变化,即:

f(x_{1}) = f(x) - \frac{\partial L(y, f(x))}{\partial f(x)}

同时,最新的学习器是由当前学习器 f(x) 与本次要产生的回归树 T_{1}相加得到的:

f(x_{1}) = f(x) + T_{1}

因此,为了让损失函数减小,需要令:

- \frac{\partial L(y, f(x))}{\partial f(x)} = T_{1}

即用损失函数对f(x)的负梯度来拟合回归树。

参考 http://www.cnblogs.com/duan-decode/p/9889955.html

3.损失函数

 

4.回归

5 二分类

 

5.多元分类

   

6.正则化

 

 参考https://www.cnblogs.com/pinard/p/6140514.html

7.优缺点

  GBDT主要的优点有:

    1) 可以灵活处理各种类型的数据,包括连续值和离散值。

    2) 在相对少的调参时间情况下,预测的准确率也可以比较高。这个是相对SVM来说的。

    3)使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

  GBDT的主要缺点有:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。

8sklearn参数

sklearn.ensemble.GradientBoostingRegressor(
loss='ls',      ##默认ls损失函数'ls'是指最小二乘回归lad'(最小绝对偏差)'huber'是两者的组合
n_estimators=100, ##默认100 回归树个数 弱学习器个数
learning_rate=0.1,  ##默认0.1学习速率/步长0.0-1.0的超参数  每个树学习前一个树的残差的步长
max_depth=3,   ## 默认值为3每个回归树的深度  控制树的大小 也可用叶节点的数量max leaf nodes控制
    subsample=1,  ##用于拟合个别基础学习器的样本分数 选择子样本<1.0导致方差的减少和偏差的增加
min_samples_split=2, ##生成子节点所需的最小样本数 如果是浮点数代表是百分比
min_samples_leaf=1, ##叶节点所需的最小样本数  如果是浮点数代表是百分比
max_features=None, ##在寻找最佳分割点要考虑的特征数量auto全选/sqrt开方/log2对数/None全选/int自定义几个/float百分比
max_leaf_nodes=None, ##叶节点的数量 None不限数量
min_impurity_split=1e-7, ##停止分裂叶子节点的阈值
verbose=0,  ##打印输出 大于1打印每棵树的进度和性能
warm_start=False, ##True在前面基础上增量训练 False默认擦除重新训练 增加树
random_state=0  ##随机种子-方便重现
)

9 应用场景

 GBDT几乎可用于所有回归问题(线性/非线性),相对logistic regression仅能用于线性回归,GBDT的适用面非常广。亦可用于二分类问题(设定阈值,大于阈值为正例,反之为负例)。

参考https://www.cnblogs.com/Sugar-Chl/p/10158672.html

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值