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)