提升方法的基本思路

在概率近似正确(probably approximately correct,PAC)学习的框架中,

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

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

Schapire后来证明强可学习与弱可学习是等价的,也就是说,在PAC学习的框架下,

一个概念是强可学习的充分必要条件是这个概念是弱可学习的。

 

对于分类问题而言,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)容易得多。

提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。

大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。

 

对提升方法来说,有两个问题需要回答:

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

二是如何将弱分类器组合成一个强分类器。

个问题,AdaBoost的做法是,提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。

那些没有得到正确分类的数据,由于其权值的加大而受到后一轮的弱分类器的更大关注。于是,分类问题被一系列的弱分类器"分而治之"。

个问题,即弱分类器的组合,AdaBoost采取加权多数表决的方法。

加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,'

减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。

 

AdaBoost算法

训练数据集


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


  2. 对M=1,2,…,m

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

    计算Gm(x)在训练数据集上的分类误差率:

    计算Gm(x)的系数

    更新训练数据集的权值分布:

    Zm是规范化因子:

  3. 构建基本分类器的线性组合



AdaBoost说明:

  1. 假设训练数据集具有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,

    步能够在原始数据上学习基本分类器G1(x)

  2. AdaBoost反复学习基本分类器,在每一轮m=1,2,…,M顺次地执行下列操作:

1.使用当前分布Dm加权的训练数据集,学习基本分类器Gm(x)。

2.计算基本分类器Gm(x)在加权训练数据集上的分类误差率:

这里,wmi表示第m轮中第i个实例的权值.

这表明,Gm(x)在加权的训练数据集上的分类误差率是被Gm(x)误分类样本的权值之和,

由此可以看出数据权值分布Dm与基本分类器Gm(x)的分类误差率的关系

3. 计算基本分类器Gm(x)的系数am。am表示Gm(x)在最终分类器中的重要性。

当em≤1/2时,am≥0,并且am随着em的减小而增大,

所以分类误差率越小的基本分类器在最终分类器中的作用越大。

4.更新训练数据的权值分布为下一轮作准备

被基本分类器Gm(x)误分类样本的权值得以扩大,而被正确分类样本的权值却得以缩小

误分类样本在下一轮学习中起更大的作用。

不改变所给的训练数据,而不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起不同的作用

  1. 线性组合f(x)实现M个基本分类器的加权表决。

 

AdaBoost的例子

弱分类器由x<v或x>v产生, 其阈值v使该分类器在训练数据集上分类误差率最低.

初始化数据权值分布


对于m=1

在权值分布为D1的训练数据上,阈值v取2.5时分类误差率最低,故基本分类器为


G1(x)在训练数据集上的误差率e1=P(G1(xi)≠yi)=0.3。

计算G1(x)的系数:


更新训练数据的权值分布:


个误分类点。

对于m= 2

在权值分布为D2的训练数据上,阈值v是8.5时分类误差率最低,基本分类器为


G2(x)在训练数据集上的误差率e2=0.2143

计算a2=0.6496

更新训练数据权值分布:

个误分类点。

对于m = 3:

在权值分布为D3的训练数据上,阈值v是5.5时分类误差率最低,基本分类器为

计算a3=0.7514

更新训练数据的权值分布

D4=(0.125,0.125,0.125,0.102,0.102,0.102,0.065,0.065,0.065,0.125)

得到:

 

 

AdaBoost算法的训练误差分析

AdaBoost算法最终分类器的训练误差界为:



这表明在此条件下AdaBoost的训练误差是以指数速率下降的

 

 

AdaBoost算法的解释

可以认为AdaBoost算法是

模型为加法模型

损失函数为指数函数

学习算法为前向分步算法

的二分类学习方法

 

加法模型

其中b(x;γm)为基函数的参数,βm是基函数的系数。

如上式所示为一加法模型。

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

前向分步算法(forward stagewise algorithm)求解这一优化问题的想法是

因为学习的是加法模型,如果能够从前向后,每一步只学习一个基函数及其系数,

逐步逼近优化目标函数式(8.14),那么就可以简化优化的复杂度。

就是优化如下函数:

,对m=1,2,…,M,极小化损失函数

计算得到γm ,βm

更新fm

获得加法模型

 

前向分步算法与AdaBoost

由前向分步算法可以推导出AdaBoost

AdaBoost算法是前向分歩加法算法的特例。

这时,模型是由基本分类器组成的加法模型,损失函数是指数函数。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

统计学习方法 AdaBoost的更多相关文章

  1. Adaboost算法的一个简单实现——基于《统计学习方法(李航)》第八章

    最近阅读了李航的<统计学习方法(第二版)>,对AdaBoost算法进行了学习. 在第八章的8.1.3小节中,举了一个具体的算法计算实例.美中不足的是书上只给出了数值解,这里用代码将它实现一 ...

  2. 【NLP】基于统计学习方法角度谈谈CRF(四)

    基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...

  3. 统计学习方法 --- 感知机模型原理及c++实现

    参考博客 Liam Q博客 和李航的<统计学习方法> 感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而 ...

  4. 统计学习方法笔记--EM算法--三硬币例子补充

    本文,意在说明<统计学习方法>第九章EM算法的三硬币例子,公式(9.5-9.6如何而来) 下面是(公式9.5-9.8)的说明, 本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流 ...

  5. 统计学习方法:KNN

    作者:桂. 时间:2017-04-19  21:20:09 链接:http://www.cnblogs.com/xingshansi/p/6736385.html 声明:欢迎被转载,不过记得注明出处哦 ...

  6. 统计学习方法:罗杰斯特回归及Tensorflow入门

    作者:桂. 时间:2017-04-21  21:11:23 链接:http://www.cnblogs.com/xingshansi/p/6743780.html 前言 看到最近大家都在用Tensor ...

  7. 统计学习方法:核函数(Kernel function)

    作者:桂. 时间:2017-04-26  12:17:42 链接:http://www.cnblogs.com/xingshansi/p/6767980.html 前言 之前分析的感知机.主成分分析( ...

  8. 统计学习方法学习(四)--KNN及kd树的java实现

    K近邻法 1基本概念 K近邻法,是一种基本分类和回归规则.根据已有的训练数据集(含有标签),对于新的实例,根据其最近的k个近邻的类别,通过多数表决的方式进行预测. 2模型相关 2.1 距离的度量方式 ...

  9. 李航《统计学习方法》CH01

    CH01 统计学方法概论 前言 章节目录 统计学习 监督学习 基本概念 问题的形式化 统计学习三要素 模型 策略 算法 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 正则化与交叉验证 正则 ...

随机推荐

  1. lumen 登陆 注册 demo

    本文将用Lumen来实现一个完整的用户注册.登录及获取用户信息的API. Lumen环境搭建和初始化详细步骤请参考上篇文章<Lumen安装配置使用入门>一文. 一.准备工作 1.Lumen ...

  2. [Tex学习]WinEdit 常用软件快捷键

    WinEdit 常用软件快捷键 编辑: Alt+C:在剪贴板原有复制文本后增加新的被选择的文本. Ctrl+Shift+Alt+Right/Left:对选中文本增加或者删除Comment标记. Ctr ...

  3. mysql <-> sqlite

    在做程序时,sqlite数据很方便.用mysql数据导出到sqlite的步骤:(用csv文件过渡) -------------------------------  先导出到csv文件  ------ ...

  4. RNG vs EDG | SKT vs KTB [20160826]

    G1 RNG:丽桑卓,古拉加斯,强行开团流. EDG:崔斯特,普朗克,伊莉斯游走,全球支援流,小规模团战能以多打少. G2 RNG:塔莉垭,纳尔,烬. EDG:雷克塞,艾克,劫,冲击后排. G3 RN ...

  5. WCF服务部署IIS

    一.将WCF服务部署到IIS上  [转载自简单笑容——http://www.cnblogs.com/skdsxx/p/5072726.html ] 1.首先检测电脑上是否安装了IIS,一般来说Win7 ...

  6. 44. Decode Ways && Gray Code

    Decode Ways A message containing letters from A-Z is being encoded to numbers using the following ma ...

  7. VBA_Excel_教程:表,格

    Sub 表和格() '定义工作表 Dim ws As Worksheet 'get sheet by name[看到的表名,或序号1,2,3,...],要加Set Set ws = Worksheet ...

  8. jsp动作标签概述

    *Jsp动作标签概述: >动作标签的作用是用来简化java脚本 >jsp动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用. >JavaWeb一 ...

  9. React学习之一:React初探

    一,React简介 React是由Facebook和Instagram开发的一套创建用户界面的JavaScript库.许多人认为React是MVC中的V. React创建的目的是为了:构建数据随时会改 ...

  10. Linux搭建smtp服务器+laravel5.2发邮件配置

    /** * 这里主要是想通过自己搭建smtp服务器,配置laravel5.2框架,实现邮箱发邮件功能, * 主要内容是搭建smtp服务器,laravel5.2发邮件顺手提一下 */ /** * 1.l ...