三个臭皮匠,顶个诸葛亮——Boosting
AdaBoost算法的提出——1995,Freund
提升方法
提升方法基本思路
强可学习,弱可学习:一个概念,如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么这个概念是强可学习的;如果一个多项式算法能学习它,但是学习的正确率仅仅比随机猜测略好,那么这个概念就是弱可学习的。——Kearns, Valiant
在概率近似正确(probably approximately correct)的学习框架内,一个概念的强可学习和弱可学习是等价的——Schapire
发现弱学习器比强学习器要容易得多,提升方法就是反复学习得到多个弱学习器,将其按不同权重进行组合得到一个强学习器的过程,反复学习的过程中往往需要改变数据的概率分布。
Boosting方法
Traditional Boost:每一次迭代增加分错的点的权重,减少分对的点的权重,使得某些点如果总被分错就会被重点关注。
Gradient Boosting:每一次的计算是为了减少上一次的残差(residual),而为了消除残差,在其减少方向上建立一个新的模型。
提升方法面临的主要问题:
1. 在每一轮训练中如何改变训练数据的权值或概率分布;
2. 如何将弱分类器组合成一个强分类器。
AdaBoost的做法:
1. 提高前一轮被错误分类的样本权重——重视错误;
2. 提高分类误差率小的分类器的权重。
AdaBoost算法
输入:训练数据集X={(x1,y1),(x2,y2)…},y值域为{+1,-1};弱学习算法。
输出:最终分类器G(x)
- 初始化训练样本权值(权值之和为1);
- m = 1~M:
- 在有权重的训练集上训练,得到基本分类器Gm(x);
- 计算Gm(x)在训练数据集上的分类误差率;
- 计算Gm(x)的系数
- 更新训练集权重
(3) 构建基本分类器的线性组合
Boosting Tree
Friedman, 2000
提升树被认为是统计学习中性能最好的方法之一。
提升树模型
提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法。以决策树为基函数的提升方法称为提升树(boosting tree)。对分类问题是二叉分类树,对回归问题是二叉回归树。
提升树算法(此处讲的非常简略,详情参考[1])
提升树算法采用前向分步算法。每次得到一个新的基本决策树分类器,并加入到提升树模型中。
分类模型
回归模型
梯度提升——加速拟合回归树
问题来源:提升树利用加法模型与前向分步算法实现学习的优化过程,这对于平方损失和指数损失函数,每一步都是简单的。但是对于一般损失函数,优化起来就不那么容易了(譬如对于不可导的函数)。对此,Freidman提出了梯度提升算法,利用最速下降的近似方法,拟合一个回归树。
引用
[1]Friedman, J., Hastie, T., & Tibshirani, R. (2000). Additive logistic regression: a statistical view of boosting (with discussion and a rejoinder by the authors). Annals of Statistics, 28(2), 337-374.
知识归纳
比较支持向量机、AdaBoost、逻辑斯蒂回归模型的学习策略与算法
| 模型 | 学习策略 | 训练算法 |
|---|---|---|
| 支持向量机(SVM) | 最大间隔 | 线性支持向量机:合页损失函数 |
| AdaBoost | 指数函数 | 前项分步算法;梯度提升算法 |
| 逻辑斯蒂回归 | 对数似然函数 | 梯度下降法和拟牛顿法 |
本文介绍了Boosting算法的基本思想及AdaBoost算法的具体实现过程,并对比了支持向量机、AdaBoost与逻辑斯蒂回归模型的学习策略与算法。重点讨论了Boosting算法中如何通过组合弱分类器来形成强分类器的方法。
2743

被折叠的 条评论
为什么被折叠?



