提升方法之AdaBoost算法

本文详细介绍了提升方法中的AdaBoost算法,包括其核心概念、算法推导和实现步骤。AdaBoost通过迭代学习弱分类器并调整数据集权重,构建强分类器。每个弱分类器的权重取决于其在训练集上的表现,误差越小,权重越大。最终,AdaBoost通过弱分类器的线性组合形成强分类器,实现误差的逐次减少。
摘要由CSDN通过智能技术生成

提升方法之AdaBoost算法

作为非数学专业出身看到密密麻麻的数学公式刚开始真的是非常头疼。算法的物理逻辑的时候尚能理解,但是涉及到具体的数学公式实现就开始懵逼了:为什么要用这个公式,这个公式是怎么推到的,这个公式达到什么样的效果?
这里结合自己的理解和画图,用最直白的语言对每个公式作用进行解剖。


一、AdaBoost核心概念总结

  1. 提升方法是将弱学习算法提升为强学习算法的统计学习方法。在分类学习中,提升方法通过反复修改训练数据的权值分布,构建一系列基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强分类器。代表性的提升方法是AdaBoost算法。(重点是:更新分类器的参数训练集的权重见下2

    AdaBoost模型是弱分类器的线性组合:

    f(x)=Mm=1αmGm(x) f ( x ) = ∑ m = 1 M α m G m ( x )

    • M M 表示该提升树共有 M 个弱分类器组成
    • Gm(x) G m ( x ) 表示第 m m 个弱分类器
    • α m 为第 m m 个弱分类器的参数(反应该分类器的重要性)
  2. AdaBoost算法的特点是通过迭代每次学习一个基本分类器。每次迭代中,核心思想是:提高那些被前一轮分类器错误分类数据的权值,而降低那些被正确分类的数据的权值。最后,AdaBoost将基本分类器的线性组合作为强分类器,其中给分类误差率小的基本分类器以大的权值,给分类误差率大的基本分类器以小的权值

  3. AdaBoost的训练误差分析表明,AdaBoost的每次迭代可以减少它在训练数据集上的分类误差率,这说明了它作为提升方法的有效性。(每次迭代误差递减且误差 0 ϵ < 0.5
  4. AdaBoost算法的一个解释是该算法实际是前向分步算法的一个实现。在这个方法里,模型是加法模型,损失函数是指数损失,算法是前向分步算法时的二分类学习方法。每一步中极小化损失函数。
  5. 提升树是以分类树或回归树为基本分类器的提升方法。提升树被认为是统计学习中最有效的方法之一。

AdaBoost是一种典型的提升树算法。

通过上面的总结我们看到,AdaBoost是一个神奇的算法,以精妙的方式通过更新数据集的权重以及各个弱分类器的参数组合成一个强分类器。那么它具体是怎么做到的呢?

二、AdaBoost算法推导

输入:训练数据集 T=(x1,y1),(x2,y2),...,(xN,yN) T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) ,其中 xiXRn,yiY={ 1,1} x i ∈ X ⊆ R n , y i ∈ Y = { − 1 , 1 } ,弱学习算法 Gm(x) G m ( x ) ;

输出:最终强化算法分类器 G(x) G ( x )
(1)初始化训练数据总和为1的权值分布:(初始权重为归一化后的均值既 1N 1 N

D1=(w11,...,w1i,...w1N),w1i=1N,i=1,2,...N D 1 = ( w 11 , . . . , w 1 i , . . . w 1 N ) , w 1 i = 1 N , i = 1 , 2 , . . . N

(2)对 m=1,2,...M m = 1 , 2 , . . . M :(弱分类器的个数)

(a)使用具有权值分布的 Dm D m 的训练数据集学习,得到基本分类器:(数据集 X X 到{-1,1}的映射)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值