GradientBoosting回归(平方损失)比较容易理解:
1.训练一棵树拟合残差
2.输入训练数据到这棵树,输出预测值
3.用预测值更新残差
4.重复1-3
对于分类问题,并不是像决策树分类那样用投票来完成的。GradientBoosting分类中,Boosting的对象也是回归树。在回归问题中,树输出的预测值是所在节点的平均值,残差就是标签值减去输出值,这和平方损失的梯度是一致的。当然,这可能也带来了那个广为流传的谬误:gbdt是一阶导,xgboost是二阶导。
在分类问题中,回顾逻辑回归,预测值是输出值经过sigmoid变换得到的。那输出值是什么呢?不能也是所在节点的平均值吧?
在论文FHT00中,Friedman称这种算法为LogitBoost。R包gbm、scikit-learn的GradientBoostingClassifier实际上都是实现了LogitBoost。
输出值不是所在节点的平均值,而是所在节点经过sigmoid变换后的平均值除以一个权重。
这个y一弯又叫pseudo-respond,是y经过sigmoid变换得到的。有人看到这会说,这不就是一阶导吗。没错,但你把boosting和Itera