机器学习算法(三):Adaboost算法

Boosting算法

集成学习

集成学习的一般结构:先产生一组个体学习器,再使用某种策略将它们结合起来。个体学习器通常由一个现有的算法从训练数据中产生。集成学习既可以包含相同类型的个体学习器,也可以包含不同类型的个体学习器。

集成学习通过将多个学习器进行结合,常可以获得比一般学习器显著优越的泛化性能。这对弱分类器(指泛化性能略优于随机猜测的学习器)尤为明显,因此集成学习的很多理论研究都是针对弱分类器进行的。虽然从理论上来说使用弱分类器集成足以获得好的性能,但在实践中出于种种考虑,人们往往会使用比较强的学习器。

假设基分类器的错误率相互独立,随着集成中基分类器数目的增大,集成的错误率将指数级下降,最终趋向于0。事实上,它们显然不可能相互独立。要获得好的集成效果,个体学习器应『好而不同』,即个体学习器要有一定的准确性,并且要有多样性,即学习器之间要有差异。这两者之间也是存在冲突的。在准确性很高之后,要增加多样性就需要牺牲准确性。事实上,如何产生并结合『好而不同』的个体学习器,恰是集成学习研究的核心。

根据个体学习器的生成方式,目前集成学习方法大致可以分为两大类。个体学习器之间存在强依赖关系,必须串行生成序列化方法。以及个体学习器之间不存在强依赖关系,可同时生成并行化方法。前者的代表是Boosting,后者的代表是Bagging和随机森林算法。关于这两类算法,将使用两篇博客来介绍。

强可学习与弱可学习

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

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

后来证明强可学习与弱可学习是等价的。也就是说,在概率近似正确学习的框架下,一个概念是强可学习的充分必要条件是这个概念是弱可学习的。

通常发现弱可学习算法通常要比发现强可学习算法容易的多。集成学习就是从弱学习算法出发,反复学习,得到一系列弱分类器,然后组合这些弱分类器,构成一个强分类器。

Boosting算法简介

提升方法基于这样一种思想:对于复杂的任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。

它改变训练数据分布的方法是:提高那些前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。对于将一系列弱分类器组合称强分类器的方法是:加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。

Adaboost作为提升方法的典型代表,把多个不同的决策树用一种非随机的方式组合起来,表现出惊人的性能。其优点如下:

  1. 具有很高的精度;

  2. Adaboost提供的是一种框架,可以使用各种方法来构建子分类器;

  3. 当使用简单分类器时,计算出的结果是可以理解的,而且弱分类器的构造特别简单;

  4. 简单,不用做特征筛选

  5. 不用担心overfitting

算法的具体过程

假设给定一个二分类的训练数据集

T={ (x1,y1),(x2,y2),...,(xN,yN) }

其中,每个样本点由实例与标记组成。算法的具体过程如下:

输入:训练数据集T;弱学习算法

输出:最终分类器 G(x)

(1) 初始化训练数据的权值分布

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

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

(a) 使用具有权值分布 Dm 的训练数据集学习,得到基本分类器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值