自适应提升与梯度提升

作者: 有机会一起种地OT | 来源:发表于2021-10-15 13:58 被阅读0次
自适应提升

提升方法通过前一个学习器所犯的错误来训练下一个学习器,是一种串行方法。关于提升算法有很多,最具代表性的是AdaBoost算法。

集成学习-组合多学习器中介绍的Adaboost方法,样本按概率被抽取作为训练子学习器的训练集。而每个子学习器根据前一子学习器的结果误差更新样本抽取概率,使被误分类的实例在后面的训练中得到更多的重视。

分类问题中,Adaboost方法还可以采用全样本数据训练每一个基学习器,根据前一子学习器的结果改变样本数据的权重,来使被误分类的实例得到更多重视。具体流程如下:

训练数据集T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)},其中x_i\in X \subseteq R^Ny_i\in Y=\{-1,+1\}
1)初始化训练数据权值分布
D_1=(w_{11},\cdots,w_{1i},\cdots,w_{1N}), w_{1i} = \frac1{N},i=1,2,\cdots,N
2)对m=1,2,\cdots,M
  (a)使用具有权值D_m的训练集学习,得到基分类器
G_m(x):X\to \{-1,+1\}
  (b)计算G_m(x)在训练集上的分类误差率
e_m=P(G_m(x_i)\neq y_i)=\sum_{i=1}^Nw_{mi}I(G_m(x_i)\neq y_i)
  (c)计算G_m(x)的系数
\alpha_m=\frac12\log \frac{1-e_m}{e_m}
  (d)更新训练集的权重分布
D_{m+1}=(w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N})
w_{m+1,i}=\frac{w_{mi}}{Z_m}\exp(-\alpha_my_iG_m(x_i))
Z_m=\sum_{i=1}^N w_{mi}\exp(-\alpha_my_iG_m(x_i))是规范化因子
3)构建基本分类器的线性组合
f(x)=\sum_{m=1}^M\alpha_m G_m(x)
得到最终分类器G(x)=sign(f(x))

回归问题情况下,则对上一个学习器拟合结果的残差进行学习,得到后面的学习器。

基学习器根据具体问题选定。一般常见的是提升树算法,adaboost的最决策树一般被认为是最好的机器学习算法之一。
而针对不同问题的提升树,主要区别在于使用的损失函数,包括回归问题的平方误差,分类问题的指数误差,或一般决策问题的一般损失函数。

梯度提升

提升树在学习过程中,当损失函数是平方损失和指数损失时,计算相对简单。但对一般损失函数,往往每一步优化不那么容易。基于此,梯度提升方法,通过学习前一个子学习器残差的负梯度,得到后面的学习器。典型的就是GBDT算法(回归树)。

训练数据集T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)},其中x_i\in X \subseteq R^Ny_i\in Y \subseteq R,损失函数L(y,f(x))f(x)为回归树。

1)初始化f_0(x)=\arg\min_c\sum_{i=1}^N L(y_i,c)
2)对m=1,2,\cdots,M
  (a)对i=1,2,\cdots,N,计算
r_{mi}=-[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i) }]_{f(x)=f_{m-1}(x)}
  (b)对r_{mi}拟合一个回归树,得到第m棵树,共有J个叶子结点,其叶子结点区域为R_{mj}j=1,2,\cdots,J
  (c)对j=1,2,\cdots,J,计算
c_{mj}=\arg\min_c \sum_{x_i\in R_{mj}}L(y_i,f_{m+1}(x_i)+c)
  (d)更新f_m(x)=f_{m-1}(x)+\sum_{j=1}^Jc_{mj}I(x\in R_{mj})
3)得到最终回归树f(x)=f_M(x)=\sum_{m=1}^M\sum_{j=1}^Jc_{mj}I(x\in R_{mj})

对比

推荐GBDT树的深度一般为6,对比DecisionTree/RandomForest需要把树的深度调到15或更高。原因在于Bagging主要关注降低方差,并行地训练很多不同的分类器的目的就是降低这个方差。因此它在不剪枝的决策树、神经网络等学习器上效用更为明显。

Boosting主要关注降低偏差,因此Boosting能基于泛化性能相当弱的学习器构建出很强的集成。Boosting来说,每一步我们都会在上一轮的基础上更加拟合原数据,所以可以保证偏差,所以对于每个基分类器来说,问题就在于如何选择variance更小的分类器,即更简单的分类器,所以我们选择了深度很浅的决策树。

相关文章

  • 自适应提升与梯度提升

    自适应提升 提升方法通过前一个学习器所犯的错误来训练下一个学习器,是一种串行方法。关于提升算法有很多,最具代表性的...

  • R 梯度提升算法①

    用gbm包实现随机梯度提升算法 自适应提升方法AdaBoost 它是一种传统而重要的Boost算法,在学习时为每一...

  • XGBOOST

    在了解xgboost之前我们先了解一下梯度提升树(gbt) 梯度提升树 梯度提升是构建预测模型的最强大技术之一,它...

  • GBDT, XGBoost, LightGBM

    GBDT 梯度提升树实在提升树的基础上发展而来的一种使用范围更广的方法,当处理回归问题时,提升树可以看作是梯度提升...

  • GBDT

    简介 GBDT即梯度提升树,提升方法依然采用的是加法模型与前向分布算法。以决策树为基函数的提升方法称为提升树。对分...

  • 2020机器学习GBDT(1)

    目标 介绍什么是梯度提升(Gradient Boost),如何运用梯度提升来作为回归和分类问题。以及其背后实现算法...

  • (十六)梯度提升树--回归和分类的算法(gbdt))

    一、GBDT 算法中有两个值,一个预测值,一个真实值,梯度提升树,减小残差,使梯度减小。梯度提升回归树,裂分条件是...

  • 梯度提升算法

    梯度提升回归树 通过合并多个决策树来构建一个更为强大的模型,采用连续的方式构造树,每棵树都试图纠正前一棵树的错误。...

  • 梯度提升树/GBDT(Gradient Descent Deci

    梯度提升树被认为是统计学习算法中性能最好的算法之一 算法释义 梯度提升树是以 CART 作为基函数,采用加法模型和...

  • GBDT 算法

    GBDT (GradientBoostingDecisionTree) 梯度提升迭代决策树。GBDT 也是 Boo...

网友评论

    本文标题:自适应提升与梯度提升

    本文链接:https://www.haomeiwen.com/subject/xpcmoltx.html