说明:本篇文章是参看文章结尾相关博客写的读书笔记。
GBDT算法步骤:
k:表示待分类的类别,一共有K个类别。
m:表示迭代次数,一共迭代M次。
i:表示样本编号,一共有N个样本。
Fk0(x):表示样本x在第k个分类下的估值,是一个k维的向量。下表0表示第0次迭代。例如:假设输入数据x可能属于5个分类(分别为1,2,3,4,5),训练数据中,x属于类别3,则y = (0, 0, 1, 0, 0),假设模型估计得到的F(x) = (0, 0.3, 0.6, 0, 0)。也可以理解为F1(x) =0, F2(x) =0.3, F3(x)=0.6, F4(x) =0, F5(x) =0。
(1)初始化所有样本在K个类别上的估计值
说明:Fk0(x) = 0, k=1,2,…K。 这其实是对样本x,在所有类别上的分别给出的估计,其实是一个for循环操作,这样写为了看起来简洁。如上所示,就是一个向量。
循环下面的学习更新过程M次;
(2)对每个样本的函数估计值做logistic变换