Adaboost是一种组合学习的提升算法,能将多个弱学习算法(甚至只比随机猜测好一点)组合起来,构成一个足够强大的学习模型。

组合学习

组合学习是将多个假说组合起来,并集成它们的预测。比如对于一个问题,我们可以生成20棵决策树,让它们对新样例的分类进行预测,最后通过投票决定最终的预测。这样可以有效的降低错误率。

提升

 提升是一种广泛使用的组合学习。首先解释加权训练集的概念。在这样的训练集中,每个样例都有一个权重w(不小于0)来表示一个样例的重要程度。提升算法开始于所有样例的权重均为1,从这样的训练集中产生了第一个假说H1,这个假说也许会对一些测试样例进行错误的分类,于是我们把这些样例挑选出来并增加它们的权重,然后把修改后的训练集提供给下一个假说H2进行训练。直到K个假说都产生之后,我们输出一个组合假说,它是这K个假说的加权多数函数,某个假说的权重大小取决于它在训练集上的表现。

 例如下图所示,我们通过增加被错误分类的样例的权重,可以使得下一个弱学习算法在错误分类样例上表现得更好。

AdaBoost

function AdaBoost(examples, L, K) returns a weighted hypothesis
inputs: exmaples, a set of example for learning
L, a learning algorithm
K, the number of hypotheses
local variable: w, a vector of weight
h, a vector of K hypotheses, initially 1/N
z, a vector of K hypothesis weight for k = 1 to K do
h[k] = L(examples, w)
error = 0
for i = 1 to N do
if h[k](x_i) != y_i then error = error+w[i]
for i = 1 to N do
if h[k](x_i) == y_i then w[i] = w[i]*error/(1-error)
w = Normalize(w)
z[k] = log(1-error)/error
return (h, z)

机器学习之AdaBoost的更多相关文章

  1. 机器学习之AdaBoost原理与代码实现

    AdaBoost原理与代码实现 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-further-further/p/9642899.html 基本思路 ...

  2. 机器学习之Adaboost (自适应增强)算法

    注:本篇博文是根据其他优秀博文编写的,我只是对其改变了知识的排序,另外代码是<机器学习实战>中的.转载请标明出处及参考资料. 1 Adaboost 算法实现过程 1.1 什么是 Adabo ...

  3. 【机器学习】--Adaboost从初始到应用

    一.前述 AdaBoost算法和GBDT(Gradient Boost Decision Tree,梯度提升决策树)算法是基于Boosting思想的机器学习算法.在Boosting思想中是通过对样本进 ...

  4. 机器学习算法-Adaboost

    本章内容 组合类似的分类器来提高分类性能 应用AdaBoost算法 处理非均衡分类问题 主题:利用AdaBoost元算法提高分类性能 1.基于数据集多重抽样的分类器 - AdaBoost 长处 泛化错 ...

  5. 机器学习之Adaboost与XGBoost笔记

    提升的概念 提升是一个机器学习技术,可以用于回归和分类问题,它每一步产生一个弱预测模型(如决策树),并加权累加到总模型中:如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升(Gra ...

  6. 机器学习笔记·adaboost

    一.算法简介 Adaboost算法是一种集成算法,所谓集成算法就是将多个弱的分类器组合在一起变成一个强的分类器.弱分类器通常是指分类效果比随机分类稍微好一点的分类器.就像我们在做一个重要决定的时候,通 ...

  7. 机器学习实战-AdaBoost

    1.概念 从若学习算法出发,反复学恶习得到一系列弱分类器(又称基本分类器),然后组合这些弱分类器构成一个强分类器.简单说就是假如有一堆数据data,不管是采用逻辑回归还是SVM算法对当前数据集通过分类 ...

  8. 机器学习技法-AdaBoost元算法

    课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.Adaptive Boosting 的动机 通过组合多个弱分类器(hy ...

  9. 机器学习-分类器-Adaboost原理

    Adaboost原理 Adaboost(AdaptiveBoosting)是一种迭代算法,通过对训练集不断训练弱分类器,然后把这些弱分类器集合起来,构成强分类器.adaboost算法训练的过程中,初始 ...

随机推荐

  1. openstack 整合

  2. Nginx和Tengine的详细安装图文教程(Linux下)

    简洁安装 安装依赖 yum -y install gcc openssl-devel pcre-devel zlib-devel 编译三步走./configure \ --prefix=/opt/sx ...

  3. jquery easyui将form表单元素的值序列化成对象

    function serializeObject(form){ var o={}; $.each(form.serializeArray(),function(index){ if(o[this['n ...

  4. thymeleaf学习

    一.简单表达格式:   thymeleaf的官方参考文档 1.变量的表达式:${...} 2.选择变量表达式:*{...} 3.信息表达:#{...} 4.链接URL表达式:@{...} 二.字面值 ...

  5. C# 解压zip压缩文件

    此方法需要在程序内引用ICSharpCode.SharpZipLib.dll 类库 /// <summary> /// 功能:解压zip格式的文件. /// </summary> ...

  6. 教你看懂邮件头信息<转载>

    MIME对于邮件系统的扩展是巨大的,因为在MIME出现以前,信件内容如果要包括声音和动画,就必须把它变为ASCII码或把二进制的信息变成可以传送的编码标准,而接收方必须经过解码才可以获得声音和图画信息 ...

  7. java中的hashcode和euqals的区别和联系

    一.equals方法的作用 1.默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一 ...

  8. 算法代码[置顶] 机器学习实战之KNN算法详解

    改章节笔者在深圳喝咖啡的时候突然想到的...之前就有想写几篇关于算法代码的文章,所以回家到以后就奋笔疾书的写出来发表了 前一段时间介绍了Kmeans聚类,而KNN这个算法刚好是聚类以后经常使用的匹配技 ...

  9. ZOJ 3633 Alice's present 倍增 区间查询最大值

    Alice's present Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/vi ...

  10. STM8的wait for interrupt

    如果我用disable interrupt和enable interrupt包裹wait forinterrupt(WFI).你说WFI还能被唤醒么?有思考过么? 昨晚拿STM8L151K4的开发板, ...