GBDT算法

一、简介

在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是ft-1(x)损失函数是L(y,ft-1(x)) 我们本轮迭代的目标是学习到弱学习器ht(x),让本轮的损失L(t,ft-1(x)+ht(x))最小。

假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。

也就是说我们要求的是高偏差,然后一步一步慢慢缩小这个偏差。

二、负梯度拟合

初始化若学习分类器是:

 

每一轮都有一个损失函数要去拟合,因为是偏差,所以找不到一个真实值来去拟合。因此提出了一种方法:用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个cart回归树

第t轮的第i个样本的损失函数的负梯度表示为:

利用(xi,rti)(i=1,2,...m),我们可以拟合一颗CART回归树,得到了第t颗回归树,其对应的叶节点区域Rtj,j=1,2,...,J。其中J为叶子节点的个数。

每个叶子节点里有多个样本,然后求出使损失函数最小时的输出值ctj(类似于标签):

这样我们就得到了本轮的决策树拟合函数如下:

本轮最终得到的强学习器的表达式如下:

三、GBDT常用损失函数

分类

指数损失函数:

对数损失函数:

回归

均方差;

绝对损失

四、GBDT的正则化

五、优缺点

GBDT主要的优点有:

1) 可以灵活处理各种类型的数据,包括连续值和离散值。

2) 在相对少的调参时间情况下,预测的准确率也可以比较高。这个是相对SVM来说的。

3)使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

GBDT的主要缺点有:

1)由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。

 

posted @ 2019-08-11 18:03  Austin_anheqiao  阅读(405)  评论(0编辑  收藏  举报