AdaBoost--从原理到实现
来源:互联网 发布:网络调研公司排名 编辑:程序博客网 时间:2024/05/17 01:44
一.引入
对于Adaboost,可以说是久闻大名,据说在Deep Learning出来之前,SVM和Adaboost是效果最好的 两个算法,而Adaboost是提升树(boosting tree),所谓“提升树”就是把“弱学习算法”提升(boost)为“强学习算法”(语自《统计学习方法》),而其中最具代表性的也就是Adaboost了,貌似Adaboost的结构还和Neural Network有几分神似,我倒没有深究过,不知道是不是有什么干货
二.过程
(from PRML)
这就是Adaboost的结构,最后的分类器YM是由数个弱分类器(weak classifier)组合而成的,相当于最后m个弱分类器来投票决定分类,而且每个弱分类器的“话语权”α不一样。
这里阐述下算法的具体过程:
具体说来,整个Adaboost 迭代算法就3步:
- 初始化训练数据的权值分布。如果有N个样本,则每一个训练样本最开始时都被赋予相同的权重:1/N。
- 训练弱分类器。具体训练过程中,如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它的权重就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。然后,权重更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
- 将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。
1.初始化所有训练样例的权重为1 / N,其中N是样例数
2.for m=1,……M:
a).训练弱分类器ym(),使其最小化权重误差函数(weighted error function):
b)接下来计算该弱分类器的话语权α:
c)更新权重:
其中Zm:
是规范化因子,使所有w的和为1。(这里公式稍微有点乱)
3.得到最后的分类器:
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- 【转】AdaBoost--从原理到实现
- HTML初学者笔记4
- Java实现office文档与pdf文档的在线预览功能
- C语言实现快速排序算法
- python 特殊方法之__call__()
- yii2 rabc 的使用和配置
- AdaBoost--从原理到实现
- 内表数据写到服务器上
- java正则表达式
- Window 下安装consul
- 4.24 leetcode -24 linked-list-cycle
- 突然发现Bootstrsp的响应式工具挺好用的
- Qmake recursion
- CSS的预编译——less语言基本语法教程(入门)
- 控制反转(IoC)技术在C++中的使用