GBDT,LightGBM

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a940902940902/article/details/84763491

GBDT

添加链接描述
GB:Gradient Boost 学习策略
DT:Decision Tree 决策树模型
GBDT:使用Gradient Boost 训练决策树模型
结果:一组回归分类树的组合 (CART Ensemble ) T1,T2,T3
其中Ti 学习的是T i-1 的残差
此时需要解决两个问题:
1.残差是如何计算的
2.一组回归分类树是如何ensemble的

Gradient Boosting

Gradient Boosting
Gradient Boosting=Gradient Descent + boosting
给定训练样本 (x1,y1),(x2,y2),…,(xn,yn)
训练模型 F(x) 使得 损失函数 loss=∑n1/2(yi-F(xi))2最小
假设 已经存在一个基模型 F(x1)=0.8 y1=0.9 ,F(x2)=1.4 y2=1.3 …
在不能修改F的前提下 如何提高模型的表现呢
一个简单的想法就是增加一个model h
使得:
在这里插入图片描述

即:
在这里插入图片描述

以regression tree 为例 对于原始数据x1,y1),(x2,y2),…,(xn,yn) 我们需要训练一个regression tree 使得x1,F(1)),(x2,F(x2)),…,(xn,F(xn)) 和1,y1),(x2,y2),…,(xn,yn) 尽量接近
同样的对于h(x) 需要训练 (x1,h(x1)),(x2,h(x2))…
和(x1,y1-F(x1)),(x2,y2-F(x2))…尽量接近
其中 y1-F(x1)称为残差 h(x) 的作用就是补偿当前函数的残差
如果在F(x)+h(x) 依旧有残差存在 那么可以继续增加另外一个regression tree 来补齐这个残差
接下来我们看一看这个所谓的残差和梯度有什么关系
对于损失函数 loss=∑i1/2(yi-F(xi))2
要最小化这个损失函数
在这里插入图片描述
在这里插入图片描述

Decision Tree

在这里插入图片描述
G(x)=∑tTqt(x) * gt(x)
其中 gt(x)代表在路径t上的叶子的结果
qt(x) 代表 x是否在路径t上
在这里插入图片描述

这里对决策树的定义是从树的叶子节点的结果出发的 如果是从树的根节点出发 可以很容易的通过递归的方法得到树的定义式
可以根据条件区分 例如上图 根据quitting time 可以分成3个状态
在这里插入图片描述
这样就把问题分解成为两部分 即 如何对树做分支 以及做完分支之后产生哪些子树 以及何时停止
在这里插入图片描述

CART
使用二叉树结果 C=2
回传的gt(x)为常数 对于分类问题 返回叶子节点中majority of yn 回归问题返回 mean(yn)

猜你喜欢

转载自blog.csdn.net/a940902940902/article/details/84763491