提升算法

小丑_jk 小丑_jk     2022-10-06     246

关键词:

提升树:

提升树是以分类树或回归树为基本分类器的提升方法。提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法,以决策树为基函数的提升方法称为提升树,对分类问题决策树是二叉分类树,对回归问题决策树是二叉回归树,其根据特征x<v与x>v将根结点直接连接两个叶结点,以作为决策树桩。提升树模型可以表示为决策树的加法模型:

其中, 表示决策树,为决策树的参数;M为树的个数

 提升树算法采用前向分布算法,首先确定初始提升树f0(x)=0,第m步的模型是:

其中,fm-1(x)为当前模型,通过使经验风险极小化确定下一棵决策树的参数

(arg为返回后式取最小值时的取值)

由于树的线性组合可以很好的拟合训练数据,即使数据中的输入域输出之间的关系很复杂也是如此,所以提升树是一个高功能的学习算法。

针对不同问题的提升树学习算法主要区别在于使用的损失函数不同,包括使用平方误差损失函数的回归问题、指数损失函数的分类问题、及一般损失函数的一般决策问题。下面叙述关于回归问题的提升树。

已知一个训练数据集,为输入空间,y为输出空间,如果将输入空间划分为J个互不相交的区域,并在每个区域上确定输出的常量cj,那么树可以表示为:

其中,参数表示树的区域划分和各区域上的常数,J是回归树的复杂度即叶结点个数。

回归问题提升树使用以下向前分步算法:(该方法就是以最小化损失函数为前提得到新增决策树的参数,并将该决策树加入原多个决策树构成新的多决策树)

在向前分布算法的第m步,给定当前模型,需求解:

得到,即第m棵树的参数。

当采用平方误差损失函数时,

其损失变成:

这里是当前模型拟合数据的残差,所以对回归问题的提升树算法来说,只需要简单的拟合当前模型的残差。

回归问题的提升树算法:

 输入:训练数据集

 输出:提升树 fM(x)

(1) 初始化f0(x)=0

(2) 对m=1,2,...,M

1) 按照计算残差得: 

   

2) 拟合残差rmi学习一个回归树,得到

3) 更新

(3) 得到回归问题提升树

 此处给出一个书上的例子用于理解上述的回归问题的提升算法:

已知如下表所示的训练数据,x的取值范围为区间[0.5,10.5],y的取值范围为区间[5.0,10.0],学习这个回归问题的提升树模型,考虑只用树桩作为基函数

按照如上算法,第1步求f1(x)即回归树T1(x)

首先通过以下优化问题:

求解训练数据的切分点s:

容易求得在R1,R2内部使平方损失误差达到最小值的c1,c2为:

这里N1,N2是R1,R2的样本点数。

求训练数据的切分点,根据所给数据,考虑如下切分点:

1.5,   2.5,   3.5,   4.5,   5.5,   6.5   7.5   8.5  9.5

对各切分点,不难求出相应的R1,R2,c1,c2

如当s取1.5时候,R1={1}, R2={2,3,...,10},  c1=5.56 ,  c2=7.50  

现将s及m(s)的计算结果列表如下所示:

由上表可知。当s=6.5时,m(s)达到最小值,此时R1={1,2,...,6}, R2={7,8,9,10},  c1=6.24,  c2=8.91,  所以回归树T1(x)为:

用f1(x)拟合训练数据的残差如下表所示,表中r2i=yi-f1(xi), i=1,2,...,10

用f1(x)拟合训练数据的平方损失误差:

第2步求T2(x),方法同上,只是拟合的数据是上面的残差表,并将其与上面得到的数值区间进行汇总得到:

用f2(x)拟合训练数据的平方损失误差是:

同上,可以依此类推:

由f6(x)拟合训练数据的平方损失误差是:

若以上求出的误差满足使用过程需要的误差阈值,那么该f6(x)为所求提升树。

adaboost提升算法从原理到实践

...念上来说就是我们通过对多个弱可学习的算法进行”组合提升或者说是强化”得到一个性能赶超强可学习算法的算法。如何地这些弱算法进行提升是关键!AdaBoost算法是其中的一个代表。2.分类算法提升的思路:   1.找... 查看详情

提升算法

...分类器)要比求精确的分类规则(强分类器)容易得多,提升法就是从弱学习算法出发,反复学习,得到一系列弱分类器,然后组合弱分类器构成强分类器。大多数提升法都是改变训练数据的概率分布(训练数据的权值分布),... 查看详情

R:实现我自己的梯度提升算法

】R:实现我自己的梯度提升算法【英文标题】:R:implementingmyowngradientboostingalgorithm【发布时间】:2020-07-1501:12:16【问题描述】:我正在尝试编写自己的梯度提升算法。我知道有像gbm和xgboost,这样的现有软件包,但我想通过自己编... 查看详情

机器学习——提升方法adaboost算法,推导过程

0提升的基本方法  对于分类的问题,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类的分类规则(强分类器)容易的多。提升的方法就是从弱分类器算法出发,反复学习,得到一系列弱分类器(... 查看详情

提升算法——adaboost

...并将这些分类器进行线性组合,提高分类器性能。大多数提升方法都是改变训练数据的概率分布(数据的权值)强可学习:存在一个多项式的学习算法能够学习他,并且正确率很高弱可学习:存在一个多项式学习算法学习,正确... 查看详情

译提升树算法的介绍(introductiontoboostedtrees)

【译】提升树算法的介绍(IntroductiontoBoostedTrees)1.有监督学习的要素XGBoost适用于有监督学习问题。在此类问题中,我们使用多特征的训练数据集(x_i)去预测一个目标变量(y_i)。在专门学习树模型前,我们先回顾一下有监督学习的... 查看详情

从提升树到xgboost,原理简介

提升树(BoostingTrees)提升树是以分类树或回归树为基本分类器的提升方法,模型表示为决策树的加法模型:\[F_M(x)=\sum_m=0^Mf(x;\Theta_m),\]其中\(M\)为树的个数,\(f(x;\Theta_m)\)表示决策树,\(\Theta_m\)为其参数.1.提升树算法提升树算法采用向前... 查看详情

adaboost算法

...总结2.正则化3.逻辑回归4.Boosting5.Adaboost算法转自:原地址提升方法(boosting)是一种常用的统计学习方法,应用广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分... 查看详情

机器学习算法学习---模型融合和提升的算法

元算法(集成方法)是对其他算法进行组合的一种方式。优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整。缺点:对离群点敏感适用数据:数值型、标称型 AdaBoost算法的具体步骤如下:1.给定训练样... 查看详情

深度学习性能提升的诀窍

深度学习性能提升的诀窍[转载]原文:HowToImproveDeepLearningPerformance作者:JasonBrownlee提升算法性能的想法这个列表并不完整,却是很好的出发点。我的目的是给大家抛出一些想法供大家尝试,或许有那么一两个有效的方法。往往只... 查看详情

模型融合和提升的算法------算法面试题

●bagging和boosting的区别参考回答:Bagging是从训练集中进行子抽样组成每个基模型所需要的子训练集,然后对所有基模型预测的结果进行综合操作产生最终的预测结果。Boosting中基模型按次序进行训练,而基模型的训练集按照某种策... 查看详情

机器学习集成学习(boosting)——提升树算法(bdt)(理论+图解+公式推导)

...码”即可获取,阿光期待着您的光临~文章目录​​Boosting提升树​​​​提升树模型​​​​提升树算法​​​​优化问题​​2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体... 查看详情

图像算法研究---adaboost算法具体解释

本篇文章先介绍了提升放法和AdaBoost算法。已经了解的可以直接跳过。后面给出了AdaBoost算法的两个样例。附有详细计算过程。1、提升方法(来源于统计学习方法)  提升方法是一种经常使用的统计学习方法,应用十分广... 查看详情

机器学习集成学习(boosting)——adaboost提升算法(理论+图解+公式推导)

...​一、集成学习​​​​二、AdaBoost算法​​​​1.Boosting提升方法​​​​2.AdaBoost算法思想​​​​3.AdaBoost原理解释​​​​4.构造损失函数,求解参数​​​​5.前向分步算法​​2021人工智能领域新星创作者,带你从入门到... 查看详情

提升自己算法逼格的位运算

​在面试过程中我们常常会被问一些算法相关问题。如果可以使用位运算解决。给面试官的印象分一定很高。还等什么学起来;以下都是在刷题的时候常用的位运算。鸡汤:别人可以做到的,凭什么你做不到?&运算全是1才是... 查看详情

class-提升方法boosting

...orithm另外的解释3.1前向分步算法3.2前向分步算法与AdaBoost4提升树4.1提升树模型4.2梯度提升Boosting在分类问题中,通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类性能。AdaBoost最具代表性,由Fr... 查看详情

机器学习集成学习(boosting)——梯度提升树(gbdt)算法(理论+图解+公式推导)

查看详情

梯度提升树(gbdt)原理小结

...做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(GradientBoostingDecisonTree,以下简称GBDT)做一个总结。GBDT有很多简称,有GBT(GradientBoostingTree), GTB(GradientTreeBoosting 查看详情