以前总是认为GBDT算法很简单,第t颗树的构建需要拟合前t-1决策树的残差,但是要问我为什么要拟合残差,脑子就一片空白的。这种情况根本不算理解了GBDT,这种了解很肤浅。下面详细分析GBDT算法。
1.GBDT
GBDT是boosting算法种的一员,采用加法模型和前向分布算法。其基本思想是第t颗树的构建依赖前t-1颗树。在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是ft−1(x), 损失函数是L(y,ft−1(x)), 我们本轮迭代的目标是找到一个CART回归树模型的弱学习器ht(x)ht(x),让本轮的损失函数L(y,ft(x))=L(y,ft−1(x)+ht(x))最小。也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小。这颗树需要拟合损失。
我们介绍了GBDT的基本思路,但是没有解决损失函数拟合方法的问题。针对这个问题,大牛Freidman提出了用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个CART回归树。第t轮的第i个样本的损失函数的负梯度表示为
如果损失函数为MSE,那么负梯度就等于残差。利用(xi,rti)(i=1,2,..m)(xi,rti)(i=1,2,..m),