集成学习方法简介:bagging、boosting、stacking

推荐博文:https://blog.csdn.net/zwqjoy/article/details/80431496

一、集成学习
集成学习是将若干个学习器(分类器、回归器)组合之后产生一个新的学习器。
一般来说,集成学习可以分为三类:
bagging:减少方差,即防止过拟合
boosting:减少偏差,即提高训练样本正确率
stacking:提升预测结果,即提高验证精度

弱分类器(weak learner)是指那些分类准确率值只稍好于随机猜测的分类器(error<0.5);
集成算法的成功在于保证弱分类器的多样性。而且集成不稳定的算法也能够得到一个比较明显的性能提升。
选择集成学习主要原因:
1、弱分类器间存在一定的差异性,这会导致分类的边界不同,也就是说可能存在错误。那么将多个若分类器合并后,就可以得到更加合理的边界,减少整体的错误率,实现更好的效果。
2、对于数据集过大或者过小,可以分别进行划分和有放回的操作,产生不同的数据子集,然后使用数据子集训练不同的分类器,最终再合并成一个大分类器。
3、如果数据的划分边界过于复杂,使用线性模型很难描述情况,那么可以训练多个模型,然后再进行模型的融合。
4、对于多个异构的特征集,很难进行融合。那么可以考虑为每个数据集构建一个分类模型,然后将多个模型融合。

二、bagging(聚合):有放回的随机取样(bootstraping),将多个弱分类器集合为一个。以cart树为弱分类器的随机森林为典型。因为随机性,防止弱分类器过拟合。

弱学习器的算法模型:Linear、Ridge、Lasso、Logistic、Softmax、ID3、C4.5、CART、SVM、KNN等。但是对于对样本扰动不敏感的分类器,例如KNN,集成学习并不会有太大提高。
在这里插入图片描述
三、boosting(提高):提高弱分类器的精度
(1)首先平均给定每个样本的权重,训练第一个弱分类器,使得加权误差最小。
(2)对其预测错误的样本给予较大权重,调整后续弱分类器的训练样本分布,
(3)使用调整后的样本训练第二个弱分类器,使得加权误差最小
(4)循环以上,直到达到指定的弱分类器个数T。
伪码如下:
在这里插入图片描述
对于训练好的弱分类器,如果是分类则按照权重进行投票,若是回归则进行加权,然后再预测。boosting和bagging的区别在于前者是对加权后的数据依次对弱分类器进行训练。

四、stacking:将多个分类模型或回归模型进行整合。基础模型利用整个训练集做训练,元模型将基础模型的输出作为特征进行训练。
基础模型通常包含不同的学习算法,例如随机森林贝叶斯等,因此stacking通常是异质集成。
例如,Otto Group Product分类挑战赛的第一名通过对30个模型做stacking赢得了冠军。他将30个模型的输出作为特征,继续在三个模型中训练,这三个模型XGBoost,Neural Network和Adaboost,最后再加权平均。
详见文章(https://www.kaggle.com/c/otto-group-product-classification-challenge/discussion/14335)。
五、基础模型、弱分类器的组合策略:
(1)平均、加权平均
(2)众数投票
(3)使用机器学习进行组合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值