1、介绍GBDT
GBDT是一种基于boosting集成方法的加法模型,在每一轮迭代中,产生一棵cart回归树来拟合损失函数在当前模型—也就是前t-1棵树叠加构成的模型下的负梯度值。
训练过程描述如下:
输入:训练数据,损失函数
输出:提升树模型
(1)初始化,估计使得损失函数最小化的常数值
f
0
(
x
)
=
a
r
g
m
i
n
c
∑
i
N
L
(
y
i
,
c
)
f_0(x)=arg min_c\sum_{i}^NL(y_i,c)
f0(x)=argminc∑iNL(yi,c)
(2)迭代产生m棵cart回归树,具体过程如下:
a )计算损失函数在当前模型上的负梯度值,拟合负梯度的值,生成一棵有J个叶子结点的cart树。
b)计算生成的cart树各个叶子结点最优的输出值,当损失函数为平方损失函数时,最优输出值为各结点标签的平均值
(在初始计算平方误差时,计算与标签的误差,之后拟合负梯度的值实际上就是计算叶子结点最优输出值与属于此叶子结点的样本的负梯度值的平方误差)
c)将新生成的树与前面t-1棵树的结果叠加,从而更新模型,进入步骤a.
(3)迭代结束后,得到最终的梯度提升树模型
2、GBDT如何做特征选择
GBDT如何做特征选择其实就是说的cart回归树的产生过程
a)遍历样本的特征,对于每个特征,遍历样本的切分点,选择最优的特征的最优切分点
d)判断最优时使用平方误差。使用一个特征及其切分点可将样本分为两部分,每部分都计算一个标签的平均值,计算标签平均值与标签的平方误差之和,平方误差最小的特征–切分点组合即是最优的。
3、GBDT如何构建特征
GBDT本身不能产生特征,但能够产生特征的组合,样本进入GBD模型之后,样本落在GBDT多课树的哪些叶结点上可以作为样本高维特征。
4、GBDT如何做分类
GBDT无论进行分类还是回归,使用的都是cart回归树,这是由其训练方式决定的。GBDT每一轮迭代都是拟合上一轮迭代的残差,这里也可以说是损失函数的负梯度值。这就要求每轮迭代中弱分类器相减的结果是有意义的。如果使用分类树,类别之间相减一般没有意义。
使用GBDT做分类时,针对每一个类别都训练一个分类器。通过比较样本属于哪一类的概率大,从而将样本判定为概率大的那一类。
计算概率时可以使用softmax方法,将概率进行归一化,容易比较。