统计学习方法 AdaBoost
提升方法的基本思路
				
在概率近似正确(probably approximately correct,PAC)学习的框架中,
一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的;
一个概念,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。
Schapire后来证明强可学习与弱可学习是等价的,也就是说,在PAC学习的框架下,
一个概念是强可学习的充分必要条件是这个概念是弱可学习的。
对于分类问题而言,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)容易得多。
提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。
大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。
对提升方法来说,有两个问题需要回答:
一是在每一轮如何改变训练数据的权值或概率分布;
二是如何将弱分类器组合成一个强分类器。
个问题,AdaBoost的做法是,提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。
那些没有得到正确分类的数据,由于其权值的加大而受到后一轮的弱分类器的更大关注。于是,分类问题被一系列的弱分类器"分而治之"。
个问题,即弱分类器的组合,AdaBoost采取加权多数表决的方法。
加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,'
减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。
AdaBoost算法
				
训练数据集
				

			
- 初始化训练数据的权值分布
  
 
- 对M=1,2,…,m
 使用具有权值分布Dm的训练数据集学习,得到基本分类器:  计算Gm(x)在训练数据集上的分类误差率:  计算Gm(x)的系数  更新训练数据集的权值分布:  Zm是规范化因子:  
- 构建基本分类器的线性组合
  
  
 
AdaBoost说明:
- 假设训练数据集具有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,步能够在原始数据上学习基本分类器G1(x) 
- 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)误分类样本的权值得以扩大,而被正确分类样本的权值却得以缩小
误分类样本在下一轮学习中起更大的作用。
不改变所给的训练数据,而不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起不同的作用
- 线性组合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的更多相关文章
- Adaboost算法的一个简单实现——基于《统计学习方法(李航)》第八章
		最近阅读了李航的<统计学习方法(第二版)>,对AdaBoost算法进行了学习. 在第八章的8.1.3小节中,举了一个具体的算法计算实例.美中不足的是书上只给出了数值解,这里用代码将它实现一 ... 
- 【NLP】基于统计学习方法角度谈谈CRF(四)
		基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ... 
- 统计学习方法 --- 感知机模型原理及c++实现
		参考博客 Liam Q博客 和李航的<统计学习方法> 感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而 ... 
- 统计学习方法笔记--EM算法--三硬币例子补充
		本文,意在说明<统计学习方法>第九章EM算法的三硬币例子,公式(9.5-9.6如何而来) 下面是(公式9.5-9.8)的说明, 本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流 ... 
- 统计学习方法:KNN
		作者:桂. 时间:2017-04-19 21:20:09 链接:http://www.cnblogs.com/xingshansi/p/6736385.html 声明:欢迎被转载,不过记得注明出处哦 ... 
- 统计学习方法:罗杰斯特回归及Tensorflow入门
		作者:桂. 时间:2017-04-21 21:11:23 链接:http://www.cnblogs.com/xingshansi/p/6743780.html 前言 看到最近大家都在用Tensor ... 
- 统计学习方法:核函数(Kernel function)
		作者:桂. 时间:2017-04-26 12:17:42 链接:http://www.cnblogs.com/xingshansi/p/6767980.html 前言 之前分析的感知机.主成分分析( ... 
- 统计学习方法学习(四)--KNN及kd树的java实现
		K近邻法 1基本概念 K近邻法,是一种基本分类和回归规则.根据已有的训练数据集(含有标签),对于新的实例,根据其最近的k个近邻的类别,通过多数表决的方式进行预测. 2模型相关 2.1 距离的度量方式 ... 
- 李航《统计学习方法》CH01
		CH01 统计学方法概论 前言 章节目录 统计学习 监督学习 基本概念 问题的形式化 统计学习三要素 模型 策略 算法 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 正则化与交叉验证 正则 ... 
随机推荐
- Apache Shiro 使用手册(五)Shiro 配置说明
			Apache Shiro的配置主要分为四部分: 对象和属性的定义与配置 URL的过滤器配置 静态用户配置 静态角色配置 其中,由于用户.角色一般由后台进行操作的动态数据,因此Shiro配置一般仅包含 ... 
- Hadoop的管理目录
			HDFS文件结构 1.NameNode的文件结构,NameNode会创建VERSION.edits.fsimage.fstime文件目录.其中dfs.name.dir属性是一个目录列表,是每个目录的镜 ... 
- UML精粹1 - 简介
			Martin的主页 http://martinfowler.com/. Pavel Hruby开发的visio模板,可以用来画UML图: http://phruby.com 简介 统一建模语言UML是 ... 
- CSS3图片缩放
			鼠标指上去,图片放大,鼠标离开图片恢复原样,并且有放大.缩小效果 Css代码实现: 
- AS3下如何来判断XML属性的是否存在
			在as3中判断xml节点是否存在可用XMLList中的方法:hasOwnProperty(p:String):Boolean. 但是判断xml节点是否存在某一属性,对象中好像没有该方法,只能用unde ... 
- SQL注入原理
			随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一 部分程序员在编写代码的时候,没有对用户输入数据的合法性 ... 
- linker command failed with exit code 1 (use -vto see invocation)
			报这样的错误可能是同一个.m文件同时存在,要先把你新添加的.m文件彻底删除 Move to Trash 点击这个删除.然后clear一下,再在重新添加你所需要的文件即可解决.这次添加不要推进来,需要在 ... 
- windows下scrapy 的安装
			2016-07-18 20:27:53 安装python 根据你的需求下载python安装包,安装python(本文基于python27)https://www.python.org/downloa ... 
- Mysql 小技巧
			查询出的日期 加一天,加一周,加一月,加一年 DAY)); WEEK)); MONTH)); YEAR)); 查询出的日期 减一天,减一周,减一月,减一年 DAY)); WEEK)); MONTH)) ... 
- [Jquery] Jquery AutoComplete的使用方法实例
			jQuery的Autocomplete(自动完成.自动填充)插件 jquery-autocomplete配置: <script type="text/javascript" ... 
