提升树算法总结(一)

本文是综合了之前的以往多个笔记汇总而成,内容较长。感兴趣的建议收藏用到时随时翻阅内容包含:

若有遗漏错误之处请反馈修改,感激不尽

一、Boosting基本概念
二、前向分步加法模型
    1. 加法模型
    2. 前向分步算法
三、AdaBoost
    1. 算法解析
    2. 模型构建
    3. 算法缺点
四、二叉分类树
五、回归分类树
    1. 算法解析
    2. 模型构建
六、梯度提升树(GBDT)
    1. 算法解析
    2. 模型构建
七、XGBoost
    1. 原理详解
    2. 目标函数
    3. 学习过程
    4. 损失函数
    5. 正则化
    6. 决策树的构建
    7. 流程步骤
    8. 优缺点
八、总结
    1. Boosting家族
    2. AdaBoost
    3. 回归提升树和AdaBoost
    4. GBDT和回归提升树   
    5. XGBoost和GBDT
    6. 参考文献

提升(Boosting)是集成学习方法里的一个重要方法,其主要思想是将弱分类器组装成一个强分类器。在 PAC(概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。

提升树模型实际采用加法模型(即基函数的线性组合)与前向分步算法,以决策树为基函数的提升方法称为提升树(Boosting Tree)。

对分类问题决策树是二叉分类树对回归问题决策树是二叉回归树

提升树模型可以表示为决策树的加法模型:

fM(x)=Mi=1T(x;Θm) f M ( x ) = ∑ i = 1 M T ( x ; Θ m )
其中 T(x;Θm) T ( x ; Θ m ) 表示决策树; Θm Θ m 表示决策树的参数; M M 为树的个数。

不同问题的提升树学习算法,其主要区别在于损失函数不同。平方损失函数常用于回归问题,用指数损失函数用于分类问题,以及绝对损失函数用于决策问题

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

一、基本概念

提升(Boosting)方法是一类应用广泛且非常有效的统计学习方法。

它基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。

强可学习:如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的

弱可学习:如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的

AdaBoost算法:那么如何将弱学习算法提升为强学习算法呢?关于提升方法的研究很多,有很多算法被提出。最具代表性的是AdaBoost算法(AdaBoost algorithm)

Boosting算法的两个核心问题

  1. 在每一轮如何改变训练数据的权值或概率分布

    通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

  2. 如何将弱分类器组合成一个强分类器

    通过加法模型将弱分类器进行线性组合,比如 AdaBoost 通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。

AdaBoost的巧妙之处就在于它将这些想法自然且有效地实现在一种算法里。
AdaBoost算法是损失函数为指数函数时的Boosting算法

二、前向分步加法模型(Forward Stagewise Additive Modeling)

1. 加法模型

(形为 Y = I + U + T + K 的模型为加法模型)

f(x)=Mm=1βmb(x;γm) f ( x ) = ∑ m = 1 M β m b ( x ; γ m )
其中, b(x;γm) b ( x ; γ m ) 为基函数, βm β m 为基函数的系数。

2. 前向分步算法

在给定训练数据及损失函数 L(y,f(x)) L ( y , f ( x ) ) 的条件下,学习加法模型 f(x) f ( x ) 称为经验风险极小化,即损失函数极小化的问题:

min(βm,γm)Ni=1L(yi,Mm=1βmb(xi;γm)) m i n ( β m , γ m ) ∑ i = 1 N L ( y i , ∑ m = 1 M β m b ( x i ; γ m ) )

通常这是一个复杂的优化问题。前向分布算法(forward stagwise algorithm)求解这一优化问题的思路是:因为学习的是加法模型,如果能够从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式 f(x)=Mm=1βmb(x;γm) f ( x ) = ∑ m = 1 M β m b ( x ; γ m ) ,那么就可以简化优化的复杂度。

具体地,每步只需优化如下损失函数:

minβ,γMi=1L(yi,βb(xi;γ)) m i n β , γ ∑ i = 1 M L ( y i , β b ( x i ; γ ) )

前向分布算法步骤如下:

输入:训练数据集 D=(x1,y1),(x2,y2),(x3,y3),...,(xN,yN) D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x N , y N ) ;损失函数 L(y,f(x)) L ( y , f ( x ) ) ;基函数集 (β(x;γ)) ( β ( x ; γ ) ) ;
输出:加法模型 f(x) f ( x )

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

(2)对于 k=1,2,...,K k = 1 , 2 , . . . , K
(a)极小化损失函数,得到 βm,γm β m , γ m :

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 决策算法是一种基于状结构的机器学习算法,可以用于分类和回归问题。它根据每个节点中的某些特征值,分割数据集,使数据集的特征更加相似。决策算法的建模过程是一种递归分割的过程,将数据集分割成更小的子集,直到找到最终的决策模型。决策算法的优点是它可以解释相对容易,并且易于实现。另外,它们可以处理大量不相关的特征值,它们也可以处理连续的和离散的特征值。决策算法的缺点是它们对于训练数据可能过拟合,并且在处理复杂的数据集时可能会有偏差。因此,决策算法是一种有效和经济的数据挖掘算法,它可以用于解决各种分类和回归问题。它的结构也使它成为灵活的模型,可以用于不同的环境和应用。此外,决策算法也可以用于更复杂的分类和回归问题。综上所述,决策算法是一种高效而灵活的数据挖掘算法,可以用于处理各种分类和回归问题。 ### 回答2: 决策是一种基本的机器学习算法,被广泛应用于数据挖掘、人工智能等领域。本综述将对决策算法进行深入的综述,着重分析其原理、优缺点以及应用等方面。 首先,决策的基本原理是通过将数据集划分为不同的子集,使得每个子集中的数据具有相同的特征。这种划分一直进行,直到达到某个停止条件。在划分过程中,决策根据某个属性对数据进行分割,并根据分割后的子集的纯度来确定最佳分割属性。 决策算法的优点之一是易于理解和解释。由于决策可以直观地表示数据的分类过程,因此决策模型的结果通常可以被非专业人士轻松理解。此外,决策算法还可以处理具有缺失值或异常值的数据,并且对于非线性关系和交互特征的处理也相对较好。 然而,决策算法也存在一些缺点。首先,决策算法容易产生过拟合问题。当决策的深度过深或分割停止条件设置不当时,模型可能会过于复杂,并且在训练集上表现很好但在测试集上表现较差。其次,决策算法对输入数据的变化非常敏感,稍微改变数据集可能会导致完全不同的结构。此外,决策算法在处理连续型数据和高维数据时存在一定的困难。 决策算法在实际应用中有广泛的应用。其中,ID3、C4.5和CART是三个经典的决策算法。ID3算法通过信息增益来选择最佳分割属性,C4.5算法在ID3的基础上引入了信息增益比进行改进,而CART算法则以基尼系数作为划分标准。此外,决策算法还可以用于特征选择、异常检测和回归等领域。 总结而言,决策算法是一种简单而有效的机器学习算法。尽管存在一些缺点,但决策算法在处理特定问题时仍然具有很高的应用价值。未来,我们可以通过改进决策算法的过拟合问题、处理连续型数据和高维数据等挑战,进一步提高决策算法的性能和应用范围。 ### 回答3: 决策算法是机器学习中一种重要的分类和回归方法。它通过构建一棵状结构来表示分类规则或者回归模型。决策算法具有易于理解和解释的优点,因此受到了广泛关注和研究。 首先,决策算法的基本原理是通过对数据集进行划分来构建一棵。划分的依据是选择一个最佳的特征和划分点。常用的特征选择算法有信息增益、信息增益率、基尼系数等。一旦选择了特征和划分点,就将数据集划分为多个子集,然后对每个子集递归地构建决策。 其次,决策算法有多种变体和扩展。例如,ID3算法、C4.5算法和CART算法是决策算法中的典型代表。这些算法在特征选择、剪枝、处理缺失值等方面有不同的策略。此外,还有基于决策的集成学习方法,如随机森林和梯度提升。这些方法通过组合多棵决策提升分类或回归的性能。 此外,决策算法还具有一些优缺点。首先,决策算法对于数据的预处理要求较低,能够处理缺失值和离散值。其次,决策算法生成的模型具有很好的可解释性,可以直观地展示分类或回归的过程。然而,决策算法也存在一些缺点,例如容易过拟合、对噪声敏感等。 最后,决策算法在各个领域都有广泛的应用。例如,在医疗诊断中,可以利用决策算法来辅助医生预测疾病的发生。在金融风控中,可以利用决策算法来判断客户的信用等级。在推荐系统中,可以利用决策算法来推荐用户感兴趣的商品。这些应用都可以充分利用决策算法的优点,从而得到更好的结果。 综上所述,决策算法是一种重要的机器学习算法,具有很好的可解释性和应用广泛性。通过深入研究决策算法的原理、变体和应用,可以更好地理解和应用这一算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值