提示:这些是自己整理 可以借鉴 也可能存在错误 欢迎指正
集成学习
“三个臭皮匠赛过诸葛亮”
引入: 概念:
集成学习 (Ensemble Learning)就是通过某种策略将多个模型集成起来,通过群体决策来提高决策准确率.
困难点:
- 如何集成多个模型—直接平均、加权平均
为了得到更好的集成效果,要求每个模型之间具备一定的差异性.并且随着模型数量的增多,其错误率也会下降,并趋近于0。
一个有效的集成需要各个基模型的差异尽可能大.为了增加模型之间的差异性,可以采取Bagging 和Boosting 这两类方法。
1. Bagging类方法
Bagging 类方法是通过随机构造训练样本、随机选择特征等方 法来提高每个基模型的独立性,代表性方法有Bagging 和随机森林等
1.1 Bagging(Bootstrap Aggregating)
通过不同模型的训练数据集的独立性 来提高不同模型之间的独立性.
在原始训练集上进行有放回的随机采样 ,得到𝑀 个比较小的训练集并训练𝑀 个模型,然后通过投票的方法进行模型集成.
1.2 随机森林(Random Forest)
在Bagging的基础上再引入了随机特征 ,进一步提高每个基模型之间的独立性.
在随机森林中,每个基模型都是一棵决策树.
2. Boosting 类方法
Boosting 类方法是按照一定的顺序来先后训练不同的基模型,
每个模型都针对前序模型的错误进行专门训练.根据前序模型的结果,来调整训练样本的权重,从而增加不同基模型之间的差异性.
Boosting 类方法是一种非常强大的集成方法,只要基模型的准确率比随机猜测高,就可以通过集成方法来显著地提高集成模型的准确率. Boosting 类方法的代表性方法有AdaBoost[Freund et al., 1996] 等
2.1 AdaBoost 算法
.假设已经训练了𝑚 个弱分类器,在训练第第𝑚 + 1 个弱分类器时,增加已有弱分类器分错样本的权重,使得第𝑚 + 1 个弱分类器“更关注”于已有弱分类器分错的样本.
.这样增加每个弱分类器的差异,最终提升集成分类器的准确率.这种方法称为AdaBoost(Adaptive Boosting)算法.
|