集成学习(Ensembling Learning)

标签(空格分隔): 机器学习


Adabost

对于一些弱分类器来说,如何通过组合方法构成一个强分类器。一般的思路是:改变训练数据的概率分布(权值分布),针对不同的训练数据分布调用弱学习算法学习一系列的弱分类器,然后将他们组合起来,形成强分类器。
需要解决的问题有:

  • 在每一轮如何改变训练数据的权值或概率分布?
  • 如何将若分类器组合成一个强分类器。

已知数据集\(T = \{(x_{1},y_{1}),(x_{2},y_{2}),..., (x_{n},y_{n}) \}\)

  1. 初始化训练数据集\(T\)的权值分布:\(D_{1} = \{w_{11}, w_{12},..., w_{1n} \}\),则预测的损失函数为:\(J = \sum_{i=1}^{n}w_{1i}L(\hat{y}_{i} - y_{i})\);
  2. 使用带有权值分布的数据集\(D_{1}\)学习,得到一个基本分类器:\(G_{1}(x)\);
  3. 计算分类器\(G_{1}(x)\)在训练数据集上的分类误差率:\(\epsilon_{1} = \sum_{i=1}^{n}w_{1i}I(G_{1}(x_{i}) \neq y_{i})\);(该分类错误率 为)
  4. 计算每个分类器的系数:\(\alpha_{1} = \frac{1}{2}ln\frac{1-\epsilon_{1}}{\epsilon_{1}}\).
  5. 根据下式更新数据集分布\(D_{m}\): (\(w_{mi}\)为第m个分类器中每个数据i的权重)
    \[ w_{mi}= \begin{cases} \frac{w_{mi}}{Z_{m}}e^{-\alpha_{m}}, & \text {$G_{m}(x_{i}) = y_{i}$ } \\ \frac{w_{mi}}{Z_{m}}e^{-\alpha_{m}}, & \text{$G_{m}(x_{i})\neq y_{i}$ } \end{cases} \]
    (通过上式计算,可以使被基本分类器\(G_{m}\)正确分类的样本的权值减小,而错误分类的样本权值增大)
  6. 最终分类器为:\(G(x) = sign(\sum_{m=1}^{M}\alpha_{m}G_{m}(x))\)

梯度提升(Gradient Boosting)

与Adaboost不同的是,每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升。

梯度提升算法首先给定一个目标损失函数,它的定义域是所有可行的弱函数集合(基函数);
提升算法通过迭代的选择一个扶梯度方向上的基函数来逐渐逼近局部极小值。

首先,给定输入向量x和输出变量y组成的若干训练样本\(\{(x_{1}, y_{1}), (x_{2}, y_{2}),...,(x_{n}, y_{n}) \}\),目标是找到近似函数\(\hat{F}(x)\),使得损失函数\(L(y,F(x))\)的损失值最小。

  1. 给定常函数\(F_{0}(x):\) \(F_{0}(x) = argmin_{\gamma}\sum_{i=1}^{n}L(y_{i}, \gamma)\)
  2. 对于m=1 到 M

a. 计算伪残差\(r_{im} = [\frac{\partial L(y_{i}, F(x_{i}))}{\partial F(x_{i})}]_{F(x) = F_{m-1}(x)}\);

b. 使用数据\(\{(x_{i},r_{im})\}_{i=1}^{n}\)计算拟合残差的基函数\(f_{m}(x)\);

c. 计算步长\(\gamma_{m} = argmin_{\gamma}\sum_{i=1}^{n}L(y_{i},F_{m-1}(x_{i}) - \gamma * f_{m}(x_{i}))\);

  1. 更新模型\(F_{m}(x) = F_{m-1}(x) - \gamma_{m}f_{m}(x_{i})\).

集成学习(Ensembling Learning)的更多相关文章

  1. 笔记︱集成学习Ensemble Learning与树模型、Bagging 和 Boosting

    本杂记摘录自文章<开发 | 为什么说集成学习模型是金融风控新的杀手锏?> 基本内容与分类见上述思维导图. . . 一.机器学习元算法 随机森林:决策树+bagging=随机森林 梯度提升树 ...

  2. 【Supervised Learning】 集成学习Ensemble Learning & Boosting 算法(python实现)

    零. Introduction 1.learn over a subset of data choose the subset uniformally randomly (均匀随机地选择子集) app ...

  3. 集成学习中的 stacking 以及python实现

    集成学习 Ensemble learning 中文名叫做集成学习,它并不是一个单独的机器学习算法,而是将很多的机器学习算法结合在一起,我们把组成集成学习的算法叫做“个体学习器”.在集成学习器当中,个体 ...

  4. 集成学习的不二法门bagging、boosting和三大法宝<结合策略>平均法,投票法和学习法(stacking)

    单个学习器要么容易欠拟合要么容易过拟合,为了获得泛化性能优良的学习器,可以训练多个个体学习器,通过一定的结合策略,最终形成一个强学习器.这种集成多个个体学习器的方法称为集成学习(ensemble le ...

  5. [白话解析] 通俗解析集成学习之bagging,boosting & 随机森林

    [白话解析] 通俗解析集成学习之bagging,boosting & 随机森林 0x00 摘要 本文将尽量使用通俗易懂的方式,尽可能不涉及数学公式,而是从整体的思路上来看,运用感性直觉的思考来 ...

  6. 机器学习:集成学习:随机森林.GBDT

    集成学习(Ensemble Learning) 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测 ...

  7. 浅谈树模型与集成学习-从决策树到GBDT

    引言   神经网络模型,特别是深度神经网络模型,自AlexNet在Imagenet Challenge 2012上的一鸣惊人,无疑是Machine Learning Research上最靓的仔,各种进 ...

  8. 第七章——集成学习和随机森林(Ensemble Learning and Random Forests)

    俗话说,三个臭皮匠顶个诸葛亮.类似的,如果集成一系列分类器的预测结果,也将会得到由于单个预测期的预测结果.一组预测期称为一个集合(ensemble),因此这一技术被称为集成学习(Ensemble Le ...

  9. 集成学习(ensemble learning)

    集成学习,又称为“多分类器系统”(multi-classifier system).“基于委员会的学习”(committee-based learning)等.基本的想法是结合多个学习器,获得比单一学 ...

随机推荐

  1. 「ruby/MiniMagick」用MiniMagick处理图片

    包的选择和配置 想用RMagick,但据说内存泄露的问题比较厉害,作为替代品MiniMagick不存在内存泄露的问题.而二者都是使用ImageMagick的,所以需要下载并安装ImageMagick. ...

  2. 《聚焦3D地形编程》学习点

    痞子龙的译本虽然称不上好,但却保留了原汁原味,看这本书时最好结合原文与痞子龙的译文.另外,如果有过地形生成的经验再看这本书时有些帮助,这本书介绍的专业的室外地形开发,很全面的介绍. 仅是个人总结,可能 ...

  3. OpenMP的调度

    schedule(static, size) 这是静态调度,如果没有设置size, 默认是根据任务书来决定, 比如我电脑是8核,有26个任务,那么分配后结果是4 4 3 3 3 3 3 3. 因为先分 ...

  4. javascript中的this与prototype,原型理解

    JavaScript 函数调用 JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. this 关键字 一般而言,在Javascript中,this指向函数执行 ...

  5. halcon学习笔记——机器视觉工程应用的开发思路【转】

    转自:http://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...

  6. (转)java线程安全问题之静态变量、实例变量、局部变量

    java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同<java并发编程实践>中所说: 写道 给线程安全下定义比较困难.存在很多种定义,如 ...

  7. PHP数组的一些常用函数

    [数组排序]sort()低到高,rsort()高到低.保持键值对应关系使用 asort()和arsort().对键排序ksort()和krsort().随机排序 shuffle(). [数组key相关 ...

  8. python-day 1

    学python--脚本语言 为了更好的以后,为了更好的自己,加油!!! 1.安装虚拟机如果遇到这样的错误:此主机支持intel vt-x 处于禁用状态错误 解决方法: 进入BIOS后,找到“Syste ...

  9. 20150813 Asp.net 关闭子窗体 刷新Tree控件

    主窗体************************************************************************************ using System ...

  10. U3D刚体测试2(ForceMode,AddForce,RelativeAddForce)

    摘自圣典的一段翻译: ForceAdd a continuous force to the rigidbody, using its mass.添加一个可持续力到刚体,使用它的质量.Accelerat ...