参考:https://blog.csdn.net/google19890102/article/details/51746402/
一、回顾
1、有监督学习方法
(1)、模型:给定自变量和因变量进行预测或者分类
(2)、参数:模型中需要学习的东西
(3)、目标函数:损失+正则,误差函数(解决模型中多拟合数据的问题),正则化项(惩罚复杂模型)
(4)、优化算法:给定目标函数后怎么学的问题,比如决策树每一步优化gini index
2、梯度下降法
梯度下降法(Gradient Descent,GD)算法是求解最优化问题最简单、最直接的方法。梯度下降法是一种迭代的优化算法,对于优化问题:
迭代步骤为:
(1)随机选取初始点
(2)重复执行:
a.决定下降的方向:i
b.选择步长
c.更新:
(3)直至满足停止迭代条件
上图是梯度下降法的具体过程,由初始值经过不断迭代得到最优解。
3、梯度下降法在函数空间的优化:
上述梯度下降法是在指定的函数中找到最优解,而我们需要在函数空间中查找到最优的函数。
设置初始值:,对于每一个样本,都存在对应的函数值。经过M次迭代,得到最优的函数:。具体的梯度下降法在函数空间中的应用参照文献。
4、boosing与bagging
bagging通过对训练样本重新采样得到不同的训练样本集,在这些新的训练样本集上分别训练学习器,然后等权重得合并多个学习器。Bagging方法中最重要的就是随机森林算法,各个基学习器之间相互独立,从而Bagging算法更容易并行。
Boosting中,学习器之间存在先后顺序,同时每个样本具有权重,初始时每个样本的权重相等,随后增大错误样本的权重再进行下个学习期的学习,最终不同学习器的权重不同。
具体关于boosting和bagging算法的异同以后会整理在博客中。
二、Gradient Boosting
上图Boosting方法中最终预测的函数为:,基于函数的优化得到最优的预测函数与上面第一部分中的3介绍的梯度下降方法在整个函数空间中的应用相似,从而这也被称为基于梯度的Boost方法。具体算法步骤如下:
三、Gradient Boosting Decision Tree
在上面简单介绍了Gradient Boost框架,梯度提升决策树Gradient Boosting Decision Tree是Gradient Boost框架下使用较多的一种模型,在梯度提升决策树中,其基学习器是分类回归树CART,使用的是CART树中的回归树。
1、分类回归数CART
关于CART的内容会在其他博客中补充
2、GBDT二分类算法可以帮助理解GBDT
四、GBDT与Boosting
boosting算法中对错误分类的样本会分配更高的权重,最后对学习到的多个学习器进行组合,但是GBDT算法中并未有权重的改变,和boosting有什么关系?Gradient Boosting与Boosting区别在于,每一计算的是为了减少上一次的残差,下一个模型主要在残差减少的梯度方上建立模型,使得残差往梯度方向上减少。
虽然不同,但是GBDT算法会更关注那些梯度比较大的样本,和Boosting思想类似。