组件名称

  GBDT分类 [版本号:1] [更新时间:2018-05-08]

简介

  梯度提升决策树算法,与原始Boost算法类似。原始的Boost算法是在算法开始的时候,为每一个样本赋上一个权重值,初始值相同。在每一步训练中得到的模型,会使得数据点的估计有对有错,算法在每一步结束后,增加分错的点的权重,减少分对的点的权重,使得多次被分错的样本有很高的权重。然后等进行了N次迭代,将会得到N个简单的分类器(basic learner),然后我们将它们组合起来(比如说可以对它们进行加权、或者让它们进行投票等),得到一个最终的模型。 在分类问题中,有一个很重要的内容叫做Multi-Class Logistic,也就是多分类的Logistic问题,它适用于那些类别数>2的问题,并且在分类结果中,样本x不是一定只属于某一个类可以得到样本x分别属于多个类的概率(也可以说样本x的估计y符合某一个几何分布),这实际上是属于Generalized Linear Model中讨论的内容,这里就先不谈了,以后有机会再用一个专门的章节去做吧。这里就用一个结论:如果一个分类问题符合几何分布,那么就可以用Logistic变换来进行之后的运算。 假设对于一个样本x,它可能属于K个分类,其估计值分别为F1(x)…FK(x),Logistic变换如下,logistic变换是一个平滑且将数据规范化(使得向量的长度为1)的过程,结果为属于类别k的概率pk(x)p_{k}\left ( x \right )

pk(x)=exp(Fk(x))/l=1Kexp(Fl(x))p_{k}\left ( x \right )=exp(F_{k}\left ( x \right ))/\sum _{l=1}^{K}exp(F_{l}\left ( x \right ))

对于Logistic变换后的结果,损失函数为:

L(yk,Fk(x)1k)=k=1Kyklogpk(x)L({y_{k},F_{k}(x)}_{1}^{k})=-\sum _{k=1}^{K}{y_{k}logp_{k}(x)}

其中,yk为输入的样本数据的估计值,当一个样本x属于类别k时,yk = 1,否则yk = 0。 将Logistic变换的式子带入损失函数,并且对其求导,可以得到损失函数的梯度:

yik=[L(yk,Fk(x)1k)/Fk(xi)]=yi,kpk,m1(xi)y_{ik}=\left [ \partial L({y_{k},F_{k}(x)}_{1}^{k}) /\partial F_{k}(x_{i}) \right ]=y_{i,k}-p_{k,m-1}(x_{i})

在y(通常有的地方称为残差,在这里,更准确的讲是梯度下降的方向)上构建CART回归树。最终将每一个训练样本划分到对应的叶子节点中,计算此时该叶子节点的预测值:

γjm=γargminX(i)Rjmlog(1+exp(2y(i)(Fm1(X(i))+γ)))\gamma _{jm}=_{\gamma }{argmin}\sum _{X^{\left ( i \right )}\in R_{jm}}log\left ( 1+exp\left ( -2y^{\left ( i \right )}\left ( F_{m-1}\left ( X^{\left ( i \right )} \right )+\gamma \right ) \right ) \right )

则预测值为

γjm=X(i)Rjmy~(i)X(i)Rjmy~(i)(2y~(i))\gamma _{jm}=\frac{\sum _{X^{\left ( i \right )}\in R_{jm}}\tilde{y}^{\left (i \right )}}{\sum _{X^{\left ( i \right )}\in R_{jm}}\left | \tilde{y}^{\left (i \right )} \right |\left ( 2-\left | \tilde{y}^{\left (i \right )} \right | \right )}

对应的模型参数为: (1)MaxDepth: 基分类器的最大树深 (2)MaxBins:连续型特征离散化的最大划分数 (3)MinInstancesPerNode:每个结点在拆分后必须具有的最小实例数。 (4)MinInfoGain:分裂节点时所需最小信息增益值。 (5)LossType: GBT试图最小化(不区分大小写)的损失函数。支持的选项有:logistic损失函数类型。 (6)SubsamplingRate:用于学习每个决策树的训练数据的比例分数,范围在(0,1]。 (7)Seed:随机种子数。 (8)StepSize: 每次优化迭代的步长大小(> = 0)。 (9)MaxIter: 模型训练最大迭代次数。

输入和输出

  输入端口个数:1

  输出端口个数:1

参数配置

参数名称 参数说明 参数默认值 是否必填
最小信息增益值 分裂节点时所需最小信息增益值 可选 0 必填
步长 每次优化迭代的步长大小(> = 0) 可选 0.1 必填
最小实例数 每个子项在拆分后必须具有的最小实例数。 如果拆分后导致左或右子节点少于最小实例数,则此拆分将作为无效丢弃。 可选 1 必填
种子数 设置随机种子数值,大于0的整数. 默认是空 可选 必填
损失函数类型 GBT试图最小化(不区分大小写)的损失函数。支持的选项有:logistic. 可选 logistic 必填
迭代次数 最大迭代次数(> = 0) 可选 20 必填
最大的划分数 连续型特征离散化的最大数量 可选 100 必填
用于学习每个决策树的训练数据的比例分数 在范围(0,1] 可选 1 必填
最大树深 5 必填

字段配置

字段名称 字段说明 字段默认值 是否必配
特征列 输入模型的样本特征列 必选 支持Double/Int类型字段 必填
标签列 输入模型的样本类别标签列 必选 支持Double/Int类型字段 必填

输出节点的字段配置说明

  运行后不生成新字段。后续节点可以直接选择字段。

results matching ""

    No results matching ""