GDBT用于多分类

1.对于多分类问题,我们要考虑用softmax模型做

假设e^{\theta ^{t}x}=z

在做softmax时,我们使用多元线性回归来去拟合每个类别z,,那么在做GBDT的时候,我们用F(x)来去拟合z,F1(x) = z1, F2(x) = z2, F3(x) = z3, Fk(x) = zk

 

k个强学习器,每个强学习器训练一个z,一共得到k个z。

这样我们就可以的得到softmax所需要的{z1...zk},这样我们就可以做多分类了。

X个样本针对每个可能的类别都训练一个分类回归树

2.每次迭代都要生成k棵小树,每颗小树我们都要准备X和-g负梯度。

交叉熵损失函数对F(x)求偏导,得到结果和做二分类和回归一样还是残差。

3. 但是对softmax来说,每次迭代都要训练k棵树,每棵树都要准备-g

(1)我们对于k各类别做one-hot编码,假设有三个类别[0,1,0],并且假设第零时刻的初始值时[0,0,0]

(2)我们把三个类别的数据(x,0)(x,1)(x,0)带入三棵树中进行训练,得到三个类别的三棵小树f1(x),f2(x),f3(x),因为我们假设第零时刻的值是0,那么F1(x) = 0+f1(x),F2(x) = 0+f2(x),F3(x) = 0+f3(x),再把F(x)带入softmax公式中计算得到第一时刻的值。

 然后在求出来第一时刻的残差yi-yi_hat

 

-g_{1} = 0-\frac{e^{F_{1(x_{i})}}}{\sum_{j}^{k=1}e^{F_{j}(x)}},-g_{1} = 1-\frac{e^{F_{1(x_{i})}}}{\sum_{j}^{k=1}e^{F_{j}(x)}},-g_{i} = 0-\frac{e^{F_{3(x_{i})}}}{\sum_{j}^{k=1}e^{F_{j}(x)}}

得到负梯度后我们就可以计算下一次迭代对应不同的小树。

那么训练下一批小树要输入的数据是(x,y11)(x,y22)(x,y33)

(3)一直迭代M轮,就会有M*3棵树

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值