AdaBoost算法详解

1. 集成算法

集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。

1.1 强可学习和弱可学习

在概率近似正确学习的框架中, 一个类,如果存在一个多项式的学习算法能够学习它,并且正确率很高, 那么就称这个概念是强可学习的;一个概念,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。

在集成学习中会遇到最明显的两个问题,一是怎么得到多个弱学习器,而是怎么将多个弱学习器结合起来进行预测。

1.2 得到弱学习器

得到弱学习器有两种方式。

一是所有的弱学习器都是一个种类的,称之为同质弱学习器。比如都是决策树学习器,或者都是神经网络学习器。二是所有的个体学习器不全是一个种类的,称为异质弱学习器。比如训练集中训练的学习器有支持向量机、神经网络、逻辑回归等,然后通过一些方法来使其结合形成一个集成学习器。

目前来说,同质学习器的应用是最广泛的,一般我们常说的集成学习的方法都是指的同质个体学习器。而同质个体学习器使用最多的模型是CART决策树和神经网络。同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging和随机森林系列算法。下面就分别对这两类算法做一个概括总结。

1.3 结合多个弱学习器

对于回归问题来说,常用的是平均法,对每一个弱学习器都赋予一个权值 w i w_i wi ,然后加权得到回归问题的最终预测结果 y ( x ) y(x) y(x),即预测如下:
y ( x ) = ∑ i = 1 N w i h i ( x ) y(x)= \sum^{N}_{i=1}w_ih_i(x) y(x)=i=1Nwihi(x)而且有
∑ i = 1 N w i = 1 \sum^N_{i=1}w_i=1 i=1Nwi=1

对于分类问题来说,常用的是多数决法,即多个弱学习器分别进行预测,然后数量最多的预测类别为最终的分类类别。如果不止一个类别获得最高票,则随机选择一个做最终类别。稍微复杂一点也可以进行加权。

2. AdaBoost 算法

2.1 Boosting 算法概述

Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,直到弱学习器数达到事先指定的数目,最终将这些弱学习器通过集合策略进行整合,得到最终的强学习器。

随着Boosting算法中一些细节的不同,算法的名称也不同,这些细节中最容易注意到的是一下几个问题:

  1. 误差率的表现怎么衡量?
  2. 如何使误差率高的训练样本权重变高?
  3. 通过怎样的集合策略对弱学习器进行整合?

Boosting系列算法里最著名算法主要有AdaBoost算法和提升树系列算法。提升树系列算法里面应用最广泛的是梯度提升树。下面我们就来看看AdaBoost算法。

设我们训练的样本为 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x n , y n ) } T=\{ (x_1,y_1),(x_2,y_2), \cdots ,(x_n,y_n) \} T={(x1,y1),(x2,y2),,(xn,yn)},学习器的输出加权权重为 D ( k ) = { w k 1 , w k 2 , ⋯   , w k n } D(k)=\{ w_{k1},w_{k2}, \cdots, w_{kn} \} D(k)={ wk1,wk2,,wkn},每一个学习器对应着 n n n 个权重,初始时设置每个学习器的权重都为 1 / w k i 1/w_{ki} 1/wki

2.2 AdaBoost 分类细节

假设我们进行的分类问题时二分类,输出 y ∈ { − 1 , + 1 } y \in \{-1,+1\} y{ 1,+1},则可以定义第 k k k 个弱分类器 G ( k ) G(k) G(k) 在训练集上的误差率 e k e_k ek
e k = ∑ i = 0 n w k i I ( G ( x i ) ≠ y i ) e_k=\sum_{i=0}^nw_{ki}I(G(x_i) \neq y_i) ek=i=0nwkiI(G(xi)=yi)然后更新弱学习器的权重系数 α k \alpha_k αk,表示如下:
α k = 1 2 l o g 1 − e k e k \alpha_k= \frac{1}{2}log \frac{1-e_k}{e_k} αk=21logek1ek这就实现了分类误差率越大,在本分类器中的权重就越小。
设此时的各样本集的权重是 D ( k ) = { w k 1 , w 2 , ⋯   , w k n } D(k)=\{ w_{k1},w_{2}, \cdots, w_{kn} \} D(k)={ wk1,w2,,wkn} ,则对应的第 k + 1 k+1 k+1 个弱分类器的样本集权重系数为
w k + 1 , i = w k i Z k e x p ( − α k y i G k ( x i ) ) w_{k+1,i}= \frac{w_{ki}}{Z_k}exp(-\alpha_ky_iG_k(x_i)) wk+1,i=Zkwkiexp(αkyiGk(xi))其中 Z k Z_k Zk
Z k = ∑ i = 1 m w k i e x p ( − α k y i G k ( x i ) ) Z_k=\sum^m_{i=1}w_{ki} exp(-\alpha_ky_iG_k(x_i)) Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值