机器学习—集成学习
Posted 深度机器学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习—集成学习相关的知识,希望对你有一定的参考价值。
1、boosting与bagging的区别:
(1)bagging:从原始数据中随机抽样得到S个同样大小的数据集,来训练S个基学习器,各学习器之间互不依赖。是一种并行的方法。
各分类器的权重都是相等的。分类结果是用这S个分类器进行分类,选择分类器投票结果中最多的类别作为最后的分类结果。
(抽样方法为有放回的抽样:允许每个小数据集中可以有重复的值。)
优点:
a.训练一个Bagging集成与直接使用基学习算法训练一个学习器的复杂度同阶,高效;
b.标准的AdaBoost只适用于二分类,Bagging能直接用于多分类,回归等任务;
c.因为自助采样,每个基学习器只使用了出事训练集中约63.2%的样本,剩下的样本可以用作验证集等等。
(2)boosting:用所有的数据去训练基学习器,个体学习器之间存在依赖关系,每一个学习器都是基于之前训练的学习器的结果,串行训练,集中关注被错分的数据,来获得新的学习器,达到提升的效果。(通俗来说,就是每次都只学习一点,然后一步步的接近最终要预测的值。)
分类的结果是基于所有分类器的加权求和结果的,分类器的权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。
优点:泛化误差低,易实现,分类准确率较高,可调参数少;
缺点:对离群点比较敏感。
两者相同点:所使用的分类器的类型都是一致的。
2、为什么说bagging是减少方差variance,而boosting是减少偏差bias?
(1)Bagging对样本重采样,对每一重采样得到的子样本集训练一个模型,最后取平均。由于子样本集的相似性以及使用的是同种模型,因此各模型有近似相等的bias和variance(事实上,各模型的分布也近似相同,但不独立)。bagging方法得到的各子模型是有一定相关性的,属于上面两个极端状况的中间态,因此可以一定程度降低variance。(降低variance,预测更集中)
(2)因此boosting是在sequential(串联)地最小化损失函数,其bias自然逐步下降。但由于是采取这种sequential、adaptive的策略,各子模型之间是强相关的,于是子模型之和并不能显著降低variance。所以说boosting主要还是靠降低bias来提升预测精度。(降低bias,预测更准)
(3)直观解释
boosting是把许多弱的分类器组合成一个强的分类器。弱的分类器bias高,而强的分类器bias低,所以说boosting起到了降低bias的作用。variance不是boosting的主要考虑因素。
bagging是对许多强(甚至过强)的分类器求平均。在这里,每个单独的分类器的bias都是低的,平均之后bias依然低;而每个单独的分类器都强到可能产生overfitting的程度,也就是variance高,求平均的操作起到的作用就是降低这个variance。
3、学习器结合可能带来的好处
(1)提高泛化能力 (2)减低局部最优风险 (3)假设空间扩大,更好相似。
4、模型融合的方法/策略
(1)平均法:对于数值类的回归预测问题,通常使用的结合策略是平均法,也就是说,对于若干个弱学习器的输出进行平均得到最终的预测输出。
(2)投票法:最简单的投票法是相对多数投票法,也就是我们常说的少数服从多数。
(3)学习法:stacking(这一层的输出作为下一层的输入数据的一部分)
当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
5、常见融合框架的原理;优缺点;融合一定会提升性能么?为什么融合可能会提高预测效果?
原理:多个比一个好+保证准确度、防止过拟合+弱学习器明显+好而不同
常见:bagging(并行+少方差),boosting(串行+少偏差),stacking(输出–>输入)
不一定,好而不同
模型有差异、体现不同表达能力
以上是关于机器学习—集成学习的主要内容,如果未能解决你的问题,请参考以下文章