GBDT源码解读及实现(二)

以下是用回归树模拟实现GBDT

这是gbdt的第一棵树

GBDT源码解读及实现(二)

GBDT源码解读及实现(二)
GBDT源码解读及实现(二)

对比两张图可以看出分割节点一样,但是叶子节点的value不同

下面是更新GBDT的树的value过程
GBDT源码解读及实现(二)

在不考虑样本权重的情况下第一棵树更新后的值=∑(residual)/∑(y_pred*(1-y_pred))
GBDT源码解读及实现(二)
第二棵树:

gbdt 生成:
GBDT源码解读及实现(二)

下面是模拟生成:

GBDT源码解读及实现(二)
GBDT源码解读及实现(二)

第二棵树的y_pred2=第一棵树的y_pred1+value(from gbdt)*learning_rate,第二棵树的residual就是y_test - 1/(1-exp(-y_pred2))