您现在的位置:主页 > 365bet网上网投 >

梯度升力树原理综述(GBDT)

2019.01.28

浏览:

在Adaboost算法的总结集成学习算法,我们已经把推进家庭Adaboost算法。该文件概括了推进家庭中最重要的算法坡度树中的另一个(GradientBoostingDecisonTree,在下文GBDT)。
该GBDT,GBT(GradientBoostingTree),GTB(GradientTreeBoosting),如GBRT(GradientBoostingRegressionTree),沃尔玛(多Aditive Regressiontree),但也有很多的缩写,我们指的是实际相同的算法全押。本文简称为GBDT。
GBDT已广泛应用于BAT厂家。如果你想选择的三个最重要的机器学习算法,请个人认为GBDT应该有一席之地。
1
GBDT概述
GBDT也是推进家庭综合学习的一员,但与传统的Adaboost完全不同。
回首Adaboost的,更新使用弱学习的前一次迭代的错误率训练集中的权重,这样你的一轮迭代继续。
GBDT也是重复你,但使用前分配算法,弱的学生是限制使用CART回归树模型的,重复的概念是不一样的Adaboost。
在GBDT的重复,在前次迭代$ F_得到强学习者{T-1}(x)的$和损失函数是$ L(Y,F_{T-1}(X))你。),当前迭代的目的,弱(找到X)$,这一轮$ L(Y,F_{T】(x的损失函数)回归树模型车的学生$ H_t是。)=L(Y,F_{吨?1}(x)的+ h_t(X))$最小。
换句话说,由于一系列迭代找到决策树,样品的损失尽可能小。
GBDT的概念可以在一般实施例进行说明。如果对方是30岁,我们首先在20岁的时候进行调整,你会发现这是一个10岁。目前,它采用了六年寻找差距,弥补亏损的其余部分,使用3岁,以覆盖在第三年剩余的差距。一年?
如果尚未完成迭代的次数,你可以继续在下面重复。在每次迭代中调整所经过的时间误差减小。
从前面的例子,但这种想法是很简单的,不好调整的损失,损失的功能是改变,如何找到一个普遍的调整?
2
GBDT的负梯度调节
在上一节中,我们展示GBDT,调整损失函数并没有解决我的问题的方法的基本思想。
针对这一问题,丹尼尔·弗里德曼是,通过使用损失函数的负斜率调整电流损耗的近似值后,我们建议调整CART回归树。
负的第t个样本i的损失函数的梯度的表示如下。$$ R_{TI}= - \比格[\压裂{\ partialL(Y_I中,f(X_I))}}{\ partialf(X_I)}\比格]_{F(X)={F_ T-1}\; \;(X)}$$
$(X_I,R_{}TI)请使用\。\;(I = 1.2。
米)$,调节回归树CART,叶节点$ R_{TJ},则可以得到回归树第t对应到j = 1,2的面积。
?$
这里,J是叶节点的数目。
对于该叶节点的每个样品中,可以看到的是,损失函数最小化。换句话说,最好如下$ C_{TJ}适配片节点的输出值是$。$$ C_{TJ}= \ underbrace{ARG \;闵}_{C}\总和\ limits_{X_I \ inR_{TJ}}L(Y_I,F_{T-1}(X_I)+ c)中$$
然后,按以下方式你得到这一轮的决策树调节功能。$$ h_t(X)= \和\ limits_{J = 1}^{?}C_{TJ}I(X \ inR_{TJ})$$
因此,谁最终在这一轮获得了强大的学习的表达式如下。$$ F_{吨}(X)={F_ T-1}(x)的+ \总和\ limits_{J = 1}^{?}C_{TJ}I(X \ inR_{TJ})$$
通过调整损失函数的负梯度,这样的无差错是分类或回归问题,找到调节损失错误的一般方法。通过调整损失函数的梯度的负值,则可以使用GBDT。
唯一的区别是,通过在损失函数差产生的负梯度是不同的。
3
GBDT回归算法
现在,使用上述的想法,让我们总结GBDT回归算法。
为什么分类算法没有一起工作?
这是因为,如在下一节中描述的,因为分类算法的输出是需要为了使用负斜率一些处理离散类别值。条目训练集样本$ T = \{(X_,Y_1),(X_2,Y_2)是。
(X_m,Y_M)\}$,迭代T的最大数目时,损失函数L
出口是强徒F(X)
1)初始化弱的学生。$$ F_0(X)= \ underbrace{ARG \;}分钟}_{C}\总和\ limits_{I = 1}^{米}L(Y_I,C)$$
2)迭代的次数为t = 1,2。
T将有:
对一个)样品,I = 1,2。
米,$$ R_{TI}=计算所述负斜率 - \比格[\压裂{\ partialL(Y_I中,f(X_I)))}{\ partialf(X_I)}\比格]_{F)= F_{T-1}\; \;(X)}$$
b)使用所述\ $(X_I,R_{TI})。\;(I = 1.2。
米)$,并调整CART回归树相应的叶节点区域$ R_{TJ},得到回归树第t为j = 1,2。
?$
这里,J是回归树吨的叶节点的数量。
c)如果叶区j = 1,2。
?,计算最佳调节值。$$ C_{TJ}= \ underbrace{ARG \;}分钟}_{C}\总和\ limits_{X_I \ inR_{TJ}}L(Y_I,F_{T-1}(X_I)+ c)中$$
d)强烈改性学生$$ F_{吨}(X)={F_ T-1}(x)的+ \总和\ limits_{J = 1}^{?}C_{TJ}I(X \ inR_{TJ $$)
3)学生强表示F(X)$$ F(X)= F_T(X)= F_0(X)+ \总和\ limits_{T = 1}^{T】\总和\ limits_{J = 1}^{?}C_{TJ}I(X \ inR_{TJ})$$
4
GBDT分类算法
在这里,我们观察GBDT分类算法。GBDT分类算法是一样的GBDT回归算法。然而,由于样品的输出是一个离散的类别而不是连续的值,则就不能直接从输出类别调整的类别。有两种主要方法可以解决这个问题。使用指数损失函数,使用Adaboost算法对GBDT进行退化。
另一种方法是使用类似于逻辑回归的对数似然丢失函数。
也就是说,我们使用类别的预测概率值与实际概率值之间的差异来调整损失。
本文档仅通过丢失注册概率函数来分析GBDT分类。
对于记录概率损失函数,二元分类和多类分类之间存在差异。
4
1二进制GBDT分类算法
对于二进制GBDT,使用类似于逻辑回归的对数似然丢失函数,损失函数是$$ L(y,f(x))= log(1 + exp( - yf(x))))$$
这里,$和\在\{ - 1,+ 1 \}$中。
然后,此时的负斜率误差如下。$$ R_{TI}= - \比格[\压裂{\ partialL(Y,F(X_I)))}{\ partialf(X_I)}\比格]{{F(X)={F_ T-1}\; \;(X)}= y_i /(1 + exp(y_if(x_i)))$$
对于得到的决策树,每个叶节点的最佳负斜率调整是$$ c_{tj}= \ underbrace{arg \;}。(1 + exp( - y - i(f -{t - 1}(x - i)+ c)))$$(1 + exp( -
因为更难上述等式优化,我们一般$$ C_{TJ}= \和\ limits_{X_I \ inR_{TJ}}R_ \比格/ \总和\ limits_{X_I的{TI}使用近似值代替\ inR_{tj}}| r_{ti}|(1- | r_{ti}|)$$
除了用于计算和负梯度的叶节点的负斜率的最佳调整的线性搜索,二进制GBDT分类是一样的GBDT回归算法。
4
两种多GBDT分类算法
多变量GBDT比二进制GBDT更复杂,这对应于二元逻辑回归和二元逻辑回归之间的复杂性差异。
假设类别的数量是K,则记录的丢失概率函数如下。$$ L(Y,F(X))= - \总和\ limits_{K = 1}^{K}y_klog \; P_K(x)的$$
如果样本输出类别是k,$ y_k = 1 $并且类kth的概率公式$ p_k(x)$如下所示。$$ P_K(X)= EXP(f_k(X))\比格/ \总和\ limits_{1 = 1}^{K}EXP(f_l(X))$$
在组2中,样品$ I $其对应于圆$ T $ $类$升$$ R_{直到}负斜率误差= - 可以作为\比格[\压裂{\ partialL(Y_I)来计算。(X)}= y_{il}- p_{l,t - 1}\ f(x,i)T-1}(x - i)$$
如果观察上述公式,错误这里,你可以看到,是样品的预测概率之间的差$ I $实际概率和$ T-1 $轮对应于所述类别$ $升的。
在结果决策树中,每个叶节点的最佳负梯度设置如下。$$ C_{TJL}= \ underbrace{ARG \;}}分钟_{C_{JL}}\总和\ limits_{I = 0}^{米}\总和\ limits_{K = 1}^{?}L(Y_K,F_{T-1,L}(X)+ \总和\ limits_{J = 0}^{?}C_{JL}它(X_I \ inR_{TJ}))$$上述式被优化通常,我们使用近似而不是$$ c_{tjl}= \ frac{K - 1}{K}\。\压裂{\总和\ limits_{X_I \ inR_{TJL}}{R_离}}{\总和\ limits_{X_I \ inR_{直到}}|{R_离}|(1- | R_{直到}|)}$$
除了用于计算和负梯度的叶节点的负斜率的最佳调整的线性搜索,多元分类GBDT是相同的回归算法二项式分类和GBDT的GBDT。

GBDT常见的丢失功能
这里我们总结一下常用的GBDT损失函数。
对于分类算法,损失函数通常具有两种类型的记录损失函数和指数损失函数。
a)对于指数损失函数,损失函数公式为$$ L(y,f(x))= exp( - yf(x))$$。
在Adaboost原理中描述了负斜率的计算和叶节点的负斜率的最佳调整。
b)如果是对数损失函数,则分为二项分类和多变量分类。请看4。
1和4。
2节
在回归算法中,常用的损失函数有四种。
a)平均方差。这是$$ L(y,f(x))=(y - f(x))^ 2 $$最常见的回归损失函数。
b)绝对损失。这种损失功能也很常见。$$ L(y,f(x))= | y - f(x)| $$
相应的负斜率误差如下。$$符号(y_i - f(x_i))$$
c)胡贝尔损失,这是均方误差和绝对损失之间的折衷。绝对损耗用于远离中心的异常值,均方误差用于中心附近的点。
该限制通常相对于分位数来测量。
损失函数如下。
\ Delta(yf(x))\ delta(yf(x))= \ begin{case}\ frac{1}{2}(X)| - \ frac{\ delta}{2}){| yf(x)| \ delta}\ end{case}$$
相应的负斜率误差如下。
\ x delta符号(y_i - f(x_i)){| y_i - f(x_i)| \ leq \ delta}y_i - f(x_i)| \ delta}\ end{case}$$
d)分位数损失。
对应于分位数的回归损失函数,表达式如下。Yf(x)| + \ sum \ limits_{yf(x)}(1 - \ theta)|yf(x)| $$
这里,$ \ theta $是分位数,您需要在重新统一之前指定它。
相应的负斜率误差如下。
$$ R(Y_I中,f(X_I))= \ BEGIN{箱子}\{THETA Y_I \ geqf(X_I)}\\\θ-1{y_if(X_I)}\{结束病例}$$
胡贝尔损失和分位数损失主要用于稳健回归。这是为了减少异常对损失函数的影响。
6
GBDT的正规化
与Adaboost一样,我们还需要对GBDT进行标准化以避免过度拟合。
GBDT标准化有三种主要方法。
一个是类似于Adaboost,学习率的正则化术语。定义为$
u $,在弱学生之前迭代的情况下,$ f_{k}(x)= f_{k - 1}(x)+ h_k(x)$$
当添加正则化时,它变为$$ f_{k}(x)= f_{k-1}(x)+。
Uh_k(x)$$
u $的范围是0美元
你好leq1 $
对于相同的训练学习效果,最低$
u $意味着较弱的学生需要更多的重复。
通常,我们一起使用步长和最大迭代次数来确定算法的适应度。
规范化的第二种方法是子采样。
值为(0,1)。
请注意,此处的子采样与随机林不同。随机森林使用返回的样本,但此处不进行采样。
如果值为1,则使用所有样本。这相当于不进行二次采样。
如果该值小于1,则仅使用一部分样本来调整GBDT决策树。
如果选择小于1的比率,则方差会减小。换句话说,避免过度拟合,但样本调整的偏差增加,因此您不能过多地降低该值。
[推荐0。
5,0。
8之间。
使用子采样的GBDT有时被称为随机梯度增强树(SGBT)。
通过使用子采样,程序通过采样分布到各种任务,可以执行动量的迭代过程并最终形成新的树。
第三是规范修剪弱弱学习者的回归树CART。
我已经在决策树的开头提到了,所以我在此不再重复。
7GBDT摘要
GBDT终于结束了,但没有GDBT本身是复杂的,如果你想克服它,综合性学习的原则,决定树的原则,并为几个你必须有一定的了解树失踪的孩子。
由于GBDT表现出优异的性能,因此无论何时研究机器学习,都必须掌握该算法,例如支持它的原理以及如何调整应用程序。
目前,GBDT算法的最佳库是xgboost。
当然,你也可以使用scikit-learn。
最后,总结GBDT的优缺点。
GBDT的主要优点如下。
1)灵活处理各种类型的数据,例如连续值和离散值。
2)对于相对短的设置时间,预测的准确性也可以相对较高。
这与SVM有关。
3)通过使用几个鲁棒的损失函数,异常值的鲁棒性非常强。
它类似于Huber损失函数和分位数损失函数。
GBDT的主要缺点如下。
1)由于弱学生之间的依赖关系,很难并行训练数据。
但是,部分并行处理可以通过自动SGBT采样来实现。
以上是GBDT原则的总结。我稍后会解释GBDT的scikit-learn优化,所以请注意。
(欢迎转载,请注明出处。
欢迎来电:刘建平 - 好@ 163。
COM)

☆喜欢这篇文章吗?分享给你的好友吧!点击这里复制网址☆