gbdt算法的c语言实现,机器学习 | GBDT

GBDT的全称是Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上TOP3的算法。想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting和Decision Tree分别是什么?

1、Decision Tree:CART回归树

首先,GBDT使用的决策树是CART回归树,无论是处理回归问题还是二分类以及多分类,GBDT使用的决策树通通都是CART回归树,为什么不用CART分类树呢?因为GBDT每次迭代要拟合的是梯度值,是连续值所以要回归树。

对于回归树算法来说最重要的是寻找最佳的划分点,那么回归树中的可换分点包含了所有特征的所有可取的值。在分类数中最佳划分点的判别标准是熵或基尼系数,都会用纯度来衡量的,但是在回归树中的样本标签是连续数值,所以再使用熵之类的指标不再合适,取而代之的是平方误差,它能很好的评判拟合程度。

回归树生成算法:

输入:训练数据集D

输出:回归树f(x)

在训练数据集所在的输入空间中,递归的将每个区域划分为两个子区域并决定每个子区域上的输出值,构建二叉决策树

(1)选择最优划分变量j与切分点s,求解

遍历变量j,对固定的切分变量j扫描切分点s,选择使得上式达到最小值的对(j,s)

(2)

你可能感兴趣的:(gbdt算法的c语言实现)