集成学习(Ensemble)相关概念及算法(Adaboost,Bagging,Stacking)
集成学习(Ensemble)相关概念及算法(Adaboost,Bagging,Stacking)
集成学习简介
集成学习(Ensemble)指的是,instead of 用一个单一的精密的高效能的学习器对数据进行处理,我们采用多个weak learner进行学习,并且通过一定的手段将这些weak learner的结果进行整合,得到最终需要的结果。当然,虽然叫做weak learner,实际上只是相对于单一的learner来说可以允许弱一些,但是还是要有一定的准确性,并且,对于这多个弱学习器来说,学习器之间应当有些不同。所以我们的ensemble的学习器应具有好而不同的特点。
ensemble的基本思想理解起来并不困难,就像我们不愿意将鸡蛋放在同一个篮子里,选择多个不同的模型,如果每个的性能都有一定的保障的话,即使不必每个都太好,我们仍然能利用他们的差异对冲风险,并且得到一个优化的整体解决方案。
集成学习ensemble在具体实现过程中有两种主要的方式,那就是bagging和boosting,bagging在随机森林一篇中已经介绍过了,它试图建立多个不相干的模型,并且通过bootstrap抽样方法给各个模型分配不同的训练集,最后将结果汇总。而boosting的思路则刚好相反,它希望找到一个学习器,通过学习器的表现对样本分布进行一个调整,将那些容易分辨的,不易出错的关注降低,而将难以分辨的关注提高,这样通过一次又一次调整,迭代,并且记录下每个学习器的效能,对于效果好的给一个高一些的权重,而差的则低权重,最终进行加权处理各个基学习器,得到的学习器就能得到一个较好的效果。
对比来看,显然,bagging是考虑了基学习器之间的无关性,并且给予不同的train set,并行的计算出结果,然后直接汇总;而boosting利用了基学习器的相关性,而且是下一个学习器是利用上一个的成果,所以只能sequential的进行,不能并行,最后加权汇总。下面分别介绍两种ensemble方法。
bagging相关
bagging算法原理:
原理较为简单,此处不再赘述,详见随机森林。
boosting相关
boosting中常用的一个是adaboost算法,被ICDM(IEEE International Conference on Data Mining)评为十大经典算法之一(C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, CART),其原理实际上是优化下面的损失函数:
H为预测的label,f为真实的label,取值±1。可以证明,如下算法等价于求解这个损失函数:
首先,我们对所有的训练样本initial同样的归一的权重,然后用带权的学习器去学这些有权重的样本,当然,如果用的学习器没法把权重加进来,那么可以根据现在的分布进行一个resample,重采样,然后训练,训练的学习器可以估计出它的误差,记为epsilon,这里我们看到,经典的adaboost是处理二分类的,所以如果epsilon大于0.5,说明这个分类器要扔掉,也就是不符合好而不同中的好的要求,于是算法停止,如果epsilon可以接收,那么我们计算给这个weak learner在最终的汇总中给一个多大的权重,一个直观的想法就是,错误率越低,权重就应该越大,那么我们计算它的正确率和错误率的几率odd,就是 (1-eps) / eps,然后取ln,乘以1/2,得到权重(这个式是由优化目标推出来的,同时符合直观)。接下来对各个样本进行重新分配权重,对于分对的,exp(-alpha),由于alpha是正的,所以这个数小鱼1,于是分对的样本权重变小了,而分错的exp(alpha),权重增大,而且增大或者减小的程度跟当前分类器的靠谱程度有关,越靠谱(错误率epsilon小,权重alpha大)的分类器对样本重加权的影响越大。然后等所有的轮数跑完后,加权求和得到最终答案。
其他
考虑到最终的综合,对于bagging来说,常用的就是:分类投票,回归平均。投票也分为很多种策略,但是基本思路都是少数服从多数。当这种简单投票没法满足的时候,可以对于weak learner的输出结果,再训练一个分类器,去汇总最终结果,这就是stacking算法:
先用样本训练T个基学习器,训练完成后,把样本投入这些基学习器中,每个样本都能得到T个预测,把每个样本的T个预测作为输入,训练一个次级学习器,最终得到结果。
reference: 西瓜书
2018年03月04日23:50:10
我们最想引以为傲的恰恰是我们缺的东西。 —— 作家,芥川龙之介
集成学习(Ensemble)相关概念及算法(Adaboost,Bagging,Stacking)相关推荐
- EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略
EL:集成学习(Ensemble Learning)的概念讲解.算法分类.问题应用.关键步骤.代码实现等相关配图详细攻略 目录 集成学习Ensemble Learning 1.集成学习中弱分类器选择 ...
- 集成学习(Ensemble Learning)
在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好).集成学习就是组 ...
- RDKit |基于集成学习(Ensemble learning)预测溶解度
Ensemble learning 集成学习 集成学习(Ensemble learning)是这样一个过程,按照某种算法生成多个模型,如分类器或者称为专家,再将这些模型按照某种方法组合在一起来解决某个 ...
- 周志华教授专著《集成学习:基础与算法》上市,破解AI实践难题
[ 摘要 ]<集成学习:基础与算法>上市一周,斩获京东IT新书销量榜第一名桂冠,并拿下京东IT图书销量总榜第二名的惊人成绩. 文中有数据派独家福利哦 本书共读活动已正式开启,文末加入读者交 ...
- 集成学习(ensemble learning)(一)
文章目录 一.集成学习概述 二.个体学习器 三.Boosting 四.Bagging 五.结合策略 1.平均法 2.投票法 3.学习法 (1)核心图解 a.构建新的训练集 b.构建新的测试集 c.最终 ...
- 集成学习 Ensemble Learing(???)
集成学习 Ensemble Learing 之前学习的决策树之类的学习方法都是单一的,独立的. 整体表现比较差的学习器,在一些样本上的表现是否有可能会超过"最好"的学习器. bag ...
- 集成学习(ensemble learning)(四)
文章目录 一.GBDT概述 二.GDBT原理 1.负梯度拟合 2.GBDT回归算法 3.GBDT分类算法 (1)二元GBDT分类算法 (2)多元GBDT分类算法 4.GBDT常用损失函数 (1)分类任 ...
- 集成学习(ensemble learning)(三)
集成学习系列第三篇(Boosting相关方法),传送前两篇: 集成学习(ensemble learning)(一) 集成学习(ensemble learning)(二) 文章目录 一.Boosting ...
- 集成学习(ensemble learning)(二)
文章目录 一.Bagging原理 1.随机采样(BootStrap) 2.弱分类器和结合决策 二.Bagging算法流程 三.随机森林(Random Forest,RF) 1.特点 2.两个" ...
- 周志华教授专著《集成学习:基础与算法》上市,豆瓣满分森林书破解AI实践难题...
近年来,机器学习技术的快速发展推动了语音.自然语言处理.机器视觉等多个领域获得巨大进步,也带动了人工智能相关产业的蓬勃发展. 回顾机器学习最近30 年的发展历程,各种学习方法推陈出新.不断演进.但是, ...
最新文章
- leetcode算法题--替换所有的问号
- 洛谷 P3243 【[HNOI2015]菜肴制作】
- [vue] vue的:class和:style有几种表示方式?
- redis持久化之rdb
- ORA-24324 ORA-24323 ORA-01090
- ECSHOP模板设置只有登录用户才能查看商品详情内容
- W3Cschool菜鸟教程离线版下载链接
- 方正飞翔加密锁_方正飞翔6.0数字版注册机
- 国际音标 英式音标 美式音标
- 如何使用Arduino开发板读/写SD卡模块的数据
- 【AliOS Studio】AliOS Studio初体验
- CVPR 2021 | 港科大:如何利用闪光图像(flash image)来去除反光?
- 直波导与微环的耦合——Lumerical仿真1
- 再见Excel!最强国产开源在线表格Luckysheet走红GitHub
- sfc/scannow检查并修复window系统
- Flink前世今生和原理
- 为技术而聚,为AI而战,飞桨黑客马拉松第三期圆满收官!
- 雨林木风GHOST XP 在虚拟机上的安装步骤
- 【Unity植物大战僵尸】太阳花生成太阳(四)
- office365之imap迁移