集成学习(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. Win7旗舰版中的IIS配置asp.net的运行环境

    Win7旗舰版中的IIS配置asp.net的运行环境   以前弄过好多次,都没有成功,昨天晚上不知怎么地就成功了,借用我同学的一句话,这叫“灵光一闪”,废话不多说了,这个成功是有图有视频有真相地哈! ...

  2. 帮初学者改代码——playerc之“练习:求完数问题”(下)

    前文链接:帮初学者改代码——playerc之“练习:求完数问题”(上) 再来看看be_ferfect()应该如何改. be_ferfect()函数的功能是判断number是否为完数,同时把因子对写入d ...

  3. UIPage

    分页控件是一种用来取代导航栏的可见指示器,方便手势直接翻页,最典型的应用便是iPhone的主屏幕,当图标过多会自动增加页面,在屏幕底部你会看到原点,用来只是当前页面,并且会随着翻页自动更新. 一.创建 ...

  4. 深拷贝 vs 浅拷贝 释放多次

    如果类中有需要new的数据,那么一定要注意delete; 如果只free一次,但是提示free多次,一定要注意了,有可能是因为你没有定义拷贝函数! 以我的亲身经历来说: operater *(mycl ...

  5. sort DEMO

    测试用文件: [weblogic@etp-mall-dev7][/tmp]$ cat msn.txt aaa, fff, bbb, cc, ee, gg, hh, zz, mmm, DEMO1:按第一 ...

  6. oracle nvl和nvl2的区别

    一直用oracle nvl函数,最近发现还有一个nvl2函数: nvl(a,b) 如果a不为null 则返回a,如果a为null则返回b; nvl2(a,b,c) ,如果a不为null 则返回b,如果 ...

  7. A类地址

    一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”.A类IP的地址第一个字段范围是0~127,但是由于全0和全1的地址用作特殊用途,实际可指派的第 ...

  8. 【转】SVN建库方法

    转载地址:http://blog.csdn.net/winonatong/article/details/5791919 SVN全名Subversion,即版本控制系统.SVN与CVS一样,是一个跨平 ...

  9. 20150604_Andriod 窗体PopupWindow动画

    参考地址: http://www.open-open.com/lib/view/open1378720752084.html http://www.jcodecraeer.com/a/anzhuoka ...

  10. 哈希-Snowflake Snow Snowflakes 分类: POJ 哈希 2015-08-06 20:53 2人阅读 评论(0) 收藏

    Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 34762 Accepted: ...