GBDT原理与实践-多分类篇

本文详细介绍了GBDT在多分类任务中的实现,包括一对多的策略、损失函数以及具体的拟合过程,通过实例展示了如何用GBDT解决多分类问题。
摘要由CSDN通过智能技术生成

摘要:

GBDT-分类
GBDT-回归
前面两篇文章已经详细介绍了在回归和分类下的GBDT算法。这一篇文章将最后介绍一个多分类任务的GBDT。其过程和二分类的GBDT类似,但是有一个地方有很大的不同,下文将详细的介绍。

正文:

下图是Friedman在论文中对GBDT多分类给出的伪代码:
这里写图片描述


从代码上看,大致和分类时候的过程一样。最大的不同点在于多了一层内部的循环For。

这里需要注意的是:
1.对于多分类任务,GDBT的做法是采用一对多的策略(详情见文章)。
也就是说,对每个类别训练M个分类器。假设有K个类别,那么训练完之后总共有M*K颗树。
2.两层循环的顺序不能改变。也就是说,K个类别都拟合完第一颗树之后才开始拟合第二颗树,不允许先把某一个类别的M颗树学习完,再学习另外一个类别。


算法6使用的是多分类常用的损失函数:
L({ yk,Fk(x)}K1)=Kk=1yklogpk(x) L ( { y k , F k ( x ) } 1 K ) = − ∑ k = 1 K y k l o g p k ( x )
其中 pk(x)=eFk(x)Kl=1eFl(x) p k ( x ) = e F k ( x ) ∑ l = 1 K e F l ( x ) (softmax)
对损失函数求一阶导有:
ỹ ik=[L({ yil,Fl(x)}Kl=1)Fk(xi)]{ Fl(x)=Fl,m1(x)}K1=yikpk,m1(xi) y ~ i k = − [ ∂ L ( { y i l , F l ( x ) } l = 1 K ) ∂ F k ( x i ) ] { F l ( x ) = F l , m − 1 ( x ) } 1 K = y i k − p k , m − 1 ( x i )
叶子节点的更新值为:
γjkm=K1KxiRjkmỹ 

  • 26
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 69
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 69
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值