集成学习
来源:互联网 发布:新手开淘宝店卖什么好 编辑:程序博客网 时间:2024/05/20 00:36
写在前面
在接触到kaggle案例后,见识到集成学习的威力,集成学习是一种”博众之长”的思想。例如一个项目,搞算法的、写代码的、做UI的等等均是不同的人,单独出来这些人都不能完成项目,把这些人聚集在一起,发挥自己的专长,则可以高质量的完成工作,而将这些人联系在一起的便是项目规划书。集成学习也是这样的一个思想。有时候单个的学习算法不足以解决问题,可能算法的结果不够准确。但将这些算法模型组合起来便可以得出很好的结果,所以集成学习可以看作成一个框架。
那么集成学习的问题有两个:(1)怎么选择个体学习器;(2)怎么选择结合策略。
个体学习器
这里的个体学习器又叫做“弱学习器”,是指一个模型针对学习任务的结果比随机猜测的准确性好的模型。那么怎么选择学习器呢?目前有两种方法:
(1):选择相同类型的模型,只是模型的参数不同,或者叫做同质的,例如都选择决策树或者多层感知器;
(2):选择不同种类的模型,或者叫做异质的,例如第一个选择支持向量机,第二个选择逻辑回归等。
同质个体学习器的应用是最广泛的,一般常说的集成学习的方法都是指的同质个体学习器。而同质个体学习器使用最多的模型是CART决策树和神经网络。同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。
boosting
boosting模型整个框架如图:
首先对训练样本中的每个样本赋予一个权值(通常设置为
Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里面应用最广泛的是梯度提升树(Gradient Boosting Tree)。
bagging
bagging的原理示意图如下:
从示意图可以看到bagging和boosting的不同,它并不依赖上一学习器的学习结果,首先从原始训练样本中进行随机采样,一共采样T个样本集,每个样本集和原始样本集数量相同,对这随机采样的T个样本集分别训练一个学习器,最后将这T个学习器进行结合。
这里的采样一般选择放回采样,又叫做自助采样法(Bootstap sampling),所以每个样本可能被重复采样到。但m个样本都相同的情况属于基本不可能发生的事件,且采样得到的各个样本集相同的情况同样是不可能的事件。所以T个样本集学习出T个不同的弱学习器。
结合策略
假设前面学习到的T个学习器分别是
平均法
平均法常用于回归问题,即最后的结果选择为T个学习器结果的平均,平均值又可分为算数平均和加权平均。
算数平均的最后预测结果是:
投票法
对于分类问题的预测,我们通常使用的是投票法。假设我们的预测类别
stacking
上两节的方法都是对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差较大,于是就有了学习法这种方法,对于学习法,代表方法是stacking,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- 集成学习
- JS刷新当前页面的几种方法总结
- POSTMESSAGE与SENDMESSAGE的区别
- 数据整理实践指南
- 《Tableau数据可视化从入门到精通》之连接JSON文件
- 在Windows运行Python程序
- 集成学习
- Spring-AOP @AspectJ切点函数之within()
- 《Tableau数据可视化从入门到精通》之Tableau连接到Hadoop Hive
- Connecting to the Network
- The GAN Zoo (最新GAN 相关paper收集)
- GAN模型-分析角度
- GAN在Image To Image translation 和Inverse Problem中的应用
- MessageFormat使用时对单引号的处理方式
- Wasserstein GAN最新进展:从weight clipping到gradient penalty,更加先进的Lipschitz限制手法