1.对于多分类问题,我们要考虑用softmax模型做
假设
在做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
即,,
得到负梯度后我们就可以计算下一次迭代对应不同的小树。
那么训练下一批小树要输入的数据是(x,y11)(x,y22)(x,y33)
(3)一直迭代M轮,就会有M*3棵树