赞
踩
梯度提升算法是一种解决回归和分类问题的机器学习技术,它通过对弱预测模型(比如决策树)的集成产生预测模型。它像其他提升方法一样以分步的方式构建模型,并且通过允许使用任意可微分的损失函数来推广它们。
和其他boost方法一样,梯度提升方法也是通过迭代的方法联合弱”学习者”联合形成一个强学习者。很容易在最小二乘回归中解释算法的原理,最小二乘法回归的目的就是“教”模型F通过将平方误差
在梯度提升的
在许多监督学习问题中,都有一个输出变量
输入:训练集
算法如下:
1. 使用常量初始化模型:
梯度提升算法通常用具有固定大小的决策树(特别是CART树)作为基学习器。对于这种特殊情况,Friedman提出了一种改进梯度提升的方法,提高了每个基学习期的质量。一般梯度提升算法在第m步使用
Hastie等人评论认为,
(译注:由于译者水平有限,没有完全这段话含义,尤其是相互作用这几句话,希望得到大神指
点,现贴出原文)。
Hastie et al.[7] comment that typically
拟合训练集太过于接近可能会降低模型的泛化能力。几种所谓的正则化技术通过约束拟合过程来减少这种过拟合效应。一个很自然的正则化参数是梯度提升的迭代次数M(即当基学习器是决策树时,模型中树的数目)。 增加M可减少训练误差,但将其设置得太高可能导致过拟合。 通常通过在单独的验证集上监测误差来选择M的最优值。 除了控制M之外,还可以使用其他一些正则化技术:
梯度提升算法的一个重要部分是收缩正则化,其中包括修改更新规则如下:
引入梯度提升方法不久之后,Friedman提出对该算法的微小修改,想法源于Breiman提出的bagging方法。具体来说,他提出在算法的每一次迭代中,基础学习器应该随机抽取训练集的子样本作为训练集拟合。Friedman观察到这种修改对梯度提升的精度有实质性改善。
子样本大小由常分数
和bagging算法一样,子样本通过评价那些在构建下一个基学习器中没有使用的样本集,可以定义预测性能改进的包外误差(out-of-bag)。 包外估计可以避免需要独立的验证数据集,但往往低估实际性能的提升和最佳迭代次数。
梯度提升树的实现中,还可以通过限制树叶节点中的最小样本数量来进行正则化(该参数在R gbm包中称为n.minobsinnode [10])。 它忽略将导致叶节点包含少于某一阈值数量的训练集实例节点的分裂(译注:也就是预剪枝)。施加此限制有助于减少叶节点预测的方差。
梯度提升树的另一个有用的正则化技术是惩罚学习模型的模型复杂性。模型复杂度可以定义为树中叶子的比例数(译注:比例数?应该是指叶子总数与树数目的比值)。 损失函数加上模型复杂度的罚项对应于修剪后的算法,可以去除一些增加模型复杂度,但对损失函数的降低影响不大的分支。 还可以添加其他类型的正则化,例如
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。