《机器学习技法》学习笔记11——GBDT

http://blog.csdn.net/u011239443/article/details/77435463

Adaptive Boosted Decision Tree

关于AdaBoost、提升树可先参阅:http://blog.csdn.net/u011239443/article/details/77294201
这里仅对其做一定的补充。
对提升决策树桩的模型中,我们对树的节点进行分隔时,需要该节点中的各个数据的权重来计算总错误:

weightedError = D.T * errArr

树根比较好算,数据都是全量的数据,但是如果是非根的叶节点呢?这就是困难了。于是,我们就想到了变动数据集方法:

《《机器学习技法》学习笔记11——GBDT》

比如说,某条数据的权重是0.1,我们就似的样本抽取到它的概率变为0.1。

AdaBoost优化背后的意义

$u_n{t+1}$为第n个数据,t+1轮优化的权重

《《机器学习技法》学习笔记11——GBDT》

《《机器学习技法》学习笔记11——GBDT》

我们把上述橙色部分叫做
voting score

我们回过头来看模型,并套用SVM的形式:

《《机器学习技法》学习笔记11——GBDT》

套用SVM,我们可知我们需要对模型的优化是:

《《机器学习技法》学习笔记11——GBDT》

于是,我们得到了AdaBoost的损失函数:

《《机器学习技法》学习笔记11——GBDT》

使用梯度下降的方法,调整最后g(也就是h),来最小化误差:

《《机器学习技法》学习笔记11——GBDT》

使用泰勒展开:

《《机器学习技法》学习笔记11——GBDT》

使得损失函数等价为:

《《机器学习技法》学习笔记11——GBDT》

于是,我们只需最小化:

《《机器学习技法》学习笔记11——GBDT》

得到:

《《机器学习技法》学习笔记11——GBDT》

我们可以看到,我们选择的h是要使得其预测率最小则结果最优。这就把问题转移到了函数h的最优化的问题了,这就变成了我们非常熟悉的问题,比如 如果是 AdaBoost Decision Tree,那就用决策树回归最优化h就行了。

然后我们来调整 η,设$g_t$就是我们的最优化h,那么最优化问题变成了:

《《机器学习技法》学习笔记11——GBDT》
《《机器学习技法》学习笔记11——GBDT》

我们对其求导,最优化得到:

《《机器学习技法》学习笔记11——GBDT》

对,没有错!AdaBoost中的 α 的含义其实就是在最优化g函数梯度下的最优化的步长!

Gradient Boosting

我们上节套用SVM来得出Adaboost的损失函数:

《《机器学习技法》学习笔记11——GBDT》

但其实我们可以用其他误差来得出损失函数,这就是叫做Gradient Boosting,通常使用差方来得到:

《《机器学习技法》学习笔记11——GBDT》

对上式进行关于S在$S_n$上泰勒展开:

《《机器学习技法》学习笔记11——GBDT》

即上式中 x = s , $x_0 = Sn$得到了:

《《机器学习技法》学习笔记11——GBDT》

由于我们想让η来调节步长,而h函数只是决定方向,所以需要让$h(x)$为负数,但是绝对值又要尽可能的小,于是优化问题变成了:

《《机器学习技法》学习笔记11——GBDT》

可以看出我们的h其实是最优化回归:

《《机器学习技法》学习笔记11——GBDT》

也就是说,h是想把输入特征,回归拟合输出为实际值和上一轮模型预测值差值。

同样的,假设我们已经找到最佳的回归函数g,接下来调整η:

《《机器学习技法》学习笔记11——GBDT》
《《机器学习技法》学习笔记11——GBDT》

可以看到,这也是一个简单的一元回归:

《《机器学习技法》学习笔记11——GBDT》

总结GBDT模型如下:

《《机器学习技法》学习笔记11——GBDT》

总结集成模型

《《机器学习技法》学习笔记11——GBDT》

bagging 和 boosting 加上 决策树 可以分别得到:

《《机器学习技法》学习笔记11——GBDT》

为什么集成方法效果好?因为它有很多不同的模型表示,所以表达能力非常好,避免的欠拟合;而又是因为有很多模型混合,所以避免的某些模型的过拟合。

《《机器学习技法》学习笔记11——GBDT》
《《机器学习技法》学习笔记11——GBDT》 这里写图片描述

    原文作者:小爷Souljoy
    原文地址: https://www.jianshu.com/p/80fa53c3f136
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞