学习笔记39-提升方法(boosting)
来源:互联网 发布:uploadify.php 漏洞 编辑:程序博客网 时间:2024/04/29 09:59
提升方法
提升方法在分类问题中,通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。
首先看两个概念:
1. 弱学习(weakly learnable):一个概念,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略高,那么称这个概念是弱可学习的。
2. 强学习(strongly learnable):一个概念,如果存在一个多项式的学习算法能够学习它,并且学习的效率很高,那么称这个概念是强可学习的。
后来,在PAC(Probably approximately correct)的学习框架下,发现一个概念是强可学习的充分必要条件是这个概念是弱可学习的。也就是说,如果发现了一个弱学习算法,那么就可以把它提升(boosting)为强学习算法。其中,最经典的就是AdaBoost算法。
AdaBoost算法
对于一个分类问题,给定一个训练样本集,先求比较粗糙的分类规则,得到一个弱分类器,通过改变训练样本的权重,反复学习,得到一系列的弱分类器(基本分类器)。然后组合这些分类器,构成一个强分类器。大多数提升方法都是改变训练数据的概率分布(训练数据的权重分布),针对不同的训练数据分布调用弱学习算法,学习一系列的弱分类器。
那么对于提升方法,有两个重要的问题:
1. 在每一轮如何改变训练数据的权重或概率分布
2. 如何将弱分类器组合成一个强分类器
AdaBoost算法在第一个问题上是这样处理的:
提升那些在前一轮分类器中被错误分类的样本的权重,降低那些正确分类的样本的权重。
在第二个问题上,AdaBoost采取多数表决方式,具体还可以加大分类误差率小的分类器的权重,减少分类误差率大的分类器的权重。
具体算法如下:
输入:训练数据集T={(x1,y1),(x2,y2),(x3,y3),…(xN,yN)}
其中y的取值只有+1,-1,(二分类任务)
输出:最终分类器G(X)
(1)初始化训练数据的权重分布
(2)对M个弱分类器,m=1,2,…,M
a. 使用权重分布Dm的训练数据集学习,得到基本分类器G(m)
b. 计算G(m)在训练数据集上的分类误差率
c. 计算Gm(x)的系数(权重)
d. 更新训练数据集的权重分布
(3)构建基本分类器的线性组合
首先是线性组合:
然后是最终分类器:
下面给个例子:
- 学习笔记39-提升方法(boosting)
- 【机器学习】笔记--梯度提升(Gradient boosting)
- 【机器学习】笔记--梯度提升(Gradient boosting)
- 提升方法(boosting)详解
- 提升方法boosting
- 提升方法(boosting)
- 机器学习笔记3 - Boosting方法
- 机器学习笔记3 - Boosting方法
- 《统计学习方法,李航》:8、提升方法Boosting(1)
- 《统计学习方法,李航》:8、提升方法Boosting(2)
- 提升方法学习笔记
- 机器学习:提升树(boosting tree)算法的思想
- Boosting Tree学习笔记
- 模式识别(Pattern Recognition)学习笔记(三十三)-- Boosting方法之AdaBoost
- 统计学习方法学习笔记《八》——Boosting方法
- AdaBoost(Adaptive Boosting 自适应提升)算法
- OpenCV学习笔记(13)-boosting
- 机器学习笔记-Adaptive Boosting
- tomcat服务器用户角色
- NIO-Netty学习之旅-01介绍
- 使用空格时Uncaught SyntaxError: Unexpected token ILLEGAL
- Android自定义控件之滑动解锁
- java面试题---GET与POSt提交请求的区别
- 学习笔记39-提升方法(boosting)
- 彩虹表破解Hash算法
- validate使用小技巧
- 如何在微信小程序里面退出小程序
- Unity制作头顶血条方式对比与优化
- I2S音频总线学习
- Task Scheduler问题及解法
- Docker安装、加速器
- 从源代码构建YUI Test