当前位置: 代码网 > it编程>编程语言>其他编程 > 进一步讨论GradientBoosting分类

进一步讨论GradientBoosting分类

2024年07月28日 其他编程 我要评论
gbdt xgboost 梯度提升分类 logitboost

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和iteratively reweighted least squares搞混了。

那个二阶导,实际包含在输出值γ的推导里了

这是你的损失函数

这是你的一阶导,为了求极大似然,你想让它为零

然后你用牛顿-拉夫森算法求二阶导

然后你可以更新你的参数

fht00帮你算好了

 再看看xgboost的论文

xgboost用g表示一阶导,h表示二阶导,看看它的w,除了多了一个正则化系数,跟logitboost并没有区别。所以,xgboost相比logitboost的优化并不在于几阶导。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com