GBDT多分类示例

Posted callyblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GBDT多分类示例相关的知识,希望对你有一定的参考价值。

样本编号 花萼长度(cm) 花萼宽度(cm) 花瓣长度(cm) 花瓣宽度 花的种类
1 5.1 3.5 1.4 0.2 山鸢尾
2 4.9 3.0 1.4 0.2 山鸢尾
3 7.0 3.2 4.7 1.4 杂色鸢尾
4 6.4 3.2 4.5 1.5 杂色鸢尾
5 6.3 3.3 6.0 2.5 维吉尼亚鸢尾
6 5.8 2.7 5.1 1.9 维吉尼亚鸢尾

Iris数据集

 

  这是一个有6个样本的三分类问题。我们需要根据这个花的花萼长度,花萼宽度,花瓣长度,花瓣宽度来判断这个花属于山鸢尾,杂色鸢尾,还是维吉尼亚鸢尾。具体应用到gbdt多分类算法上面。我们用一个三维向量来标志样本的label。[1,0,0] 表示样本属于山鸢尾,[0,1,0] 表示样本属于杂色鸢尾,[0,0,1] 表示属于维吉尼亚鸢尾。

  gbdt 的多分类是针对每个类都独立训练一个 CART Tree。所以这里,我们将针对山鸢尾类别训练一个 CART Tree 1。杂色鸢尾训练一个 CART Tree 2 。维吉尼亚鸢尾训练一个CART Tree 3,这三个树相互独立。

  我们以样本 1 为例。针对 CART Tree1 的训练样本是[5.1,3.5,1.4,0.2],label 是 1,最终输入到模型当中的为[5.1,3.5,1.4,0.2,1]。针对 CART Tree2 的训练样本也是[5.1,3.5,1.4,0.2],但是label 为 0,最终输入模型的为[5.1,3.5,1.4,0.2,0]. 针对 CART Tree 3的训练样本也是[5.1,3.5,1.4,0.2],label 也为0,最终输入模型当中的为[5.1,3.5,1.4,0.2,0]。

  下面我们来看 CART Tree1 是如何生成的,其他树 CART Tree2 , CART Tree 3的生成方式是一样的。CART Tree的生成过程是从这四个特征中找一个特征做为CART Tree1 的节点。比如花萼长度做为节点。6个样本当中花萼长度 大于5.1 cm的就是 A类,小于等于 5.1 cm 的是B类。生成的过程其实非常简单,问题 1.是哪个特征最合适? 2.是这个特征的什么特征值作为切分点? 即使我们已经确定了花萼长度做为节点。花萼长度本身也有很多值。在这里我们的方式是遍历所有的可能性,找到一个最好的特征和它对应的最优特征值可以让当前式子的值最小。

  技术分享图片

  我们以第一个特征的第一个特征值为例。R1 为所有样本中花萼长度小于 5.1 cm 的样本集合,R2 为所有样本当中花萼长度大于等于 5.1cm 的样本集合。所以 R1={2}R2={1,3,4,5,6}.

技术分享图片

 

 

 

 

一棵树,是这样进行训练的,来了一个样本,它有一个标记,将对应标记的放入到对应标记的树里面去,放入到其他树里面去的时候,标记为0,放入到对应树里面去的时候,标记为1;这样,每次训练m颗树,m为总的类别数,训练k轮下来就有m*k颗树

 




以上是关于GBDT多分类示例的主要内容,如果未能解决你的问题,请参考以下文章

足矣

足矣

足矣

使用 LightGBM 进行多类分类

随机森林和GBDT进行比较

GBDT和随机森林的区别