几种Boost算法的比较(Discrete AdaBoost, Real AdaBoost, LogitBoost, Gentle Adaboost)
关于boost算法
boost算法是基于PAC学习理论(probably approximately correct)而建立的一套集成学习算法(ensemble learning)。其根本思想在于通过多个简单的弱分类器,构建出准确率很高的强分类器,PAC学习理论证实了这一方法的可行性。下面关于几种Boost算法的比较,是基于文章《Additive Logistic Regression a Statistical View of Boosting》整理的。
几种boost算法步骤
通常使用最多的应该是离散的Adaboost算法(Discrete AdaBoost),主要因为它的简单却不俗的表现,Discrete Adaboost算法的步骤如下:

可以看出,Discrete AdaBoost的每一个弱分类的输出结果是1或-1,并没有属于某个类的概率,略显粗糙。
如果让每个弱分类器输出样本属于某个类的概率,则可以得到Real AdaBoost算法,其步骤如下:

Real Adaboost每个弱分类器输出样本属于某类的概率后,通过一个对数函数将0-1的概率值映射到实数域,最后的分类器是所有映射函数的和。
将Real Adaboost算法每次迭代的两部合并,直接产生一个映射到实数域的函数,则就成了Gentle AdaBoost, 其算法步骤如下:

Gentle AdaBoost则在每次迭代时,基于最小二乘去做一个加权回归,最后所有回归函数的和作为最终的分类器。
LogitBoost算法则和Gentle AdaBoost算法有点相像,不过其每次进行回归拟合的变量z是在不断更新的,Gentle AdaBoost使用的是y。LogitBoost算法步骤如下:

4种boost算法的原理差异
上面4中boost算法,其大体结构都是比较相似的,那么是如何推导出每种算法的具体形式的呢?
首先是关于损失函数(或代价函数),通常见到比较多的是均方误差和似然函数,而上面的算法中,Discrete AdaBoost、Real AdaBoost和Gentle AdaBoost算法都是采用对数损失函数,具体形式如下:
\begin{aligned} J(F) = Ee^({-yF(x)}) \end{aligned}
其表达的意义实质上与分类错误个数是相同的。
而Logit Boost算法则采用最大化对数似然函数来推导的。
第二点是具体优化方法,Discrete AdaBoost与Real AdaBoost主要通过类似梯度下降的方法来优化,而Gentle AdaBoost与Logit Boost都是采用类似牛顿迭代的方式优化的。
算法的效果差异
在前面提到的参考文章中,对几种算法的效果进行了大量比较,大致如下;
- 整体效果而言,效果由好到差的顺序为Logit Boost,Gentle AdaBoost, Real AdaBoost, Discrete AdaBoost
- 若弱分类器采用树桩模型(也就是只要2个叶子节点的决策树),Discrete AdaBoost的结果比其他3种算法结果差了很多,大概是由于系统偏差过大导致的泛化误差较大
- 若弱分类器采用多层的决策树(4或8个叶子节点),Discrete AdaBoost的结果能有较大提升,而其他3种算法则差异不大。
平时我们所用的AdaBoost算法大多是Discrete AdaBoost,从这里可以看出Discrete AdaBoost算法模型相对比较简单,需要弱分类器的精确度稍高,因此在具体应用时最好将每个弱分类器的叶子节点控制在4个或8个。
关于Boost算法还有很多比较有趣的结论,这里不多讲,可以参考上面的那篇Paper。
几种Boost算法的比较(Discrete AdaBoost, Real AdaBoost, LogitBoost, Gentle Adaboost)的更多相关文章
- 10 种机器学习算法的要点(附 Python 和 R 代码)
本文由 伯乐在线 - Agatha 翻译,唐尤华 校稿.未经许可,禁止转载!英文出处:SUNIL RAY.欢迎加入翻译组. 前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关 ...
- 10 种机器学习算法的要点(附 Python)(转载)
一.前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术 也许我们生活在人类历史上最关键的时期:从使用 ...
- 机器学习10种经典算法的Python实现
广义来说,有三种机器学习算法 1. 监督式学习 工作机制:这个算法由一个目标变量或结果变量(或因变量)组成.这些变量由已知的一系列预示变量(自变量)预测而来.利用这一系列变量,我们生成一个将输入值映射 ...
- 模板化的七种排序算法,适用于T* vector<T>以及list<T>
最近在写一些数据结构以及算法相关的代码,比如常用排序算法以及具有启发能力的智能算法.为了能够让写下的代码下次还能够被复用,直接将代码编写成类模板成员函数的方式,之所以没有将这种方式改成更方便的函数模板 ...
- php 冒泡 快速 选择 插入算法 四种基本算法
php四种基础算法:冒泡,选择,插入和快速排序法 来源:PHP100中文网 | 时间:2013-10-29 15:24:57 | 阅读数:120854 [导读] 许多人都说 算法是程序的核心,一个程序 ...
- 几种排序算法的学习,利用Python和C实现
之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...
- PHP四种基础算法详解
许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...
- 秒杀9种排序算法(JavaScript版)
一:你必须知道的 1> JS原型 2> 排序中的有序区和无序区 3> 二叉树的基本知识 如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力. 二:封装丑陋的原型方 ...
- php四种基础算法:冒泡,选择,插入和快速排序法
转自:http://www.php100.com/html/php/rumen/2013/1029/6333.html 许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一 ...
随机推荐
- easyui的datagrid实例实现
功能要求如图所示: function Loading() { var editRow = undefined;//保存行的索引 var query= $("#myform").se ...
- oracle表相关
堆表 数据以堆的形式管理,增加数据时会使用段中找到的第一个能放下数据的自由空间,我们见到的绝大部分的表都是堆表.堆表是数据库的默认表类型. 最简单的情况是 create table test (c1 ...
- linux中如何查看进程对应的cpu使用情况?
使用ps aux | grep <进程名>即可查看指定进程的cpu使用情况.
- GUID分区与MBR分区
1.MBR分区表类型的磁盘主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,它仅仅包含一个64个字节的硬盘分区表.由于每个分区信息需要16个字节,所以对于采用MBR型 ...
- beeline vs hive cli
近期,大数据开发环境升级为cloudera 5.3. 配套的hive版本升级为0.13.1.可以使用心仪已久的分析开窗函数了.但在使用的过程中发现一些问题,仅记于此. 1.在使用hive命令的时候,发 ...
- java使用HttpClient传输json格式的参数
最近的一个接口项目,传的参数要求是json,需要特殊处理一下. 重点是这两句话: httpPost.setHeader("Content-Type", "applicat ...
- 详解Webwork中Action 调用的方法
详解Webwork中Action 调用的方法 从三方面介绍webwork action调用相关知识: 1.Webwork 获取和包装 web 参数 2.这部分框架类关系 3.DefaultAction ...
- 【转】dsadd user批量创建AD用户命令详解
常见的批量创建用户的方法有四种: 一. 帐户模板的方式 二. CSVDE和LDIFDE 三. 脚本的方式 四. DSADD 但是很少有详细的资料使用DSADD的方式来批量创建帐户,那么我就把我近期使用 ...
- JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSO ...
- [ORACLE错误]ORA-00001: unique constraint (...) violated并不一定是数据冲突
遇到这种情况,重建完表和索引后,终于正常INSERT了. prompt Importing table COUPON_ACTIVITYset feedback offset define offin ...