前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >梯度提升树GBDT原理

梯度提升树GBDT原理

作者头像
昱良
发布2018-04-08 16:07:31
8860
发布2018-04-08 16:07:31
举报

关键字全网搜索最新排名

【机器学习算法】:排名第一

【机器学习】:排名第二

【Python】:排名第三

【算法】:排名第四

作者:雪伦_

链接:http://blog.csdn.net/a819825294

模型

提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法。以决策树为基函数的提升方法称为提升树(boosting tree)。对分类问题决策树是二叉分类树,对回归问题决策树是二叉决策树。提升树模型可以表示为决策树的加法模型:

其中,T(x;Sm)表示决策树;Sm为决策树的参数;M为树的个数.

学习过程

回归问题提升树使用以下前向分布算法:

在前向分布算法的第m步,给定当前模型,需求解

即第m棵树的参数。当采用平方误差损失函数时,

其中,r=y-fm-1(x)是当前模型拟合数据的残差(residual)。对于平方损失函数,拟合的就是残差;对于一般损失函数(梯度下降),拟合的就是残差的近似值。

算法

输入:训练数据集

输出:提升树fM(x)

算法流程:

scikit-learn中GBDT文档:http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor

GBDT并行

非递归建树

? 节点的存放

? 终止条件

♠树的节点数

♥树的深度

♣没有适合分割的节点

特征值排序

? 在对每个节点进行分割的时候,首先需要遍历所有的特征,然后对每个样本的特征的值进行枚举计算。(CART)

? 在对单个特征量进行枚举取值之前,我们可以先将该特征量的所有取值进行排序,然后再进行排序。

? 优点

♠ 避免计算重复的value值

♥ 方便更佳分割值的确定

♣ 减少信息的重复计算

多线程/MPI并行化的实现

? 主线程

? 其他线程

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法与Python学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档