集成学习方法分为 boosting,bagging,stacking。
boosting(提升):先训练一个模型,在提高那些模型判断错的数据的权重,然后在进行训练。这样得到t个模型,之后在对这t个模型进行整合。
bagging(装袋):进训练集随机采样,采出n个采样集。
boostrap采样方法:每次取一个sample,取完放回接着采样。采集到和原数据集大小一样停止,用n个不同这样的采样出的数据集进行训练,得到了n个不同的弱学习器。
random forest是bagging方法的一个变种,与原来从所有特征中选取一个最优的不同,假设原来的有d个属性,传统bagging方法会从d个里面选取一个属性,而随机森林先从这d个里面随机选取k个属性出来,在进行一个最优属性的选择。
集成学习的结合策略:
1. 平均法,直接对于每个结果取平均或者取加权平均。
2. 投票法,多数投票法/加权投票法。最后的结果归为一种情况,按照每种结果投票,或加权投票,最后得到投票的结果。
3. 学习法(stacking),将弱学习器的结果,再加上一层stacking,然后将进行训练,得到最终结果。
这三种有点像 打比赛的时候 多个模型融合的策略。
adaboost
在概率近似正确(probably approximately correct, PAC)学习的框架中,一个概念(类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,称这个概念是强可学习的。
一个概念(类),如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,则称这个概念是弱可学习的。
强可学习和弱可学习是互为充分必要条件的。
adaboost的算法过程可参见 《统计学习方法》一书。
大致过程如下:
1. 初始化所有数据的权重,为1/n。
2.a 学习当前权重下的学习器;
2.b 计算出当下的分类误差率,其中会对每个样本进行加权,在加权的训练数据集上的分类误差率是被误分类样本的权值之和。
2.c 根据公式计算系数,此系数会用在d步,以及最后的基学习器融合上,误差率越高,系数越低,也就是误差率高的基学习器占的权重低。
2.d 更新权重分布,分错的数据,权重会升高,同时公式中还有一个规范化因子。
第二步重复m次,得到m个基学习器
3. 根据2.c的权重,来融合这m个基学习器得到的结果。这里的权重之和并不为1。
adaboost的特点
不改变所给的训练数据,而不断改变训练数据权重的分布,使得训练数据在基本分类起的学习中起不同的作用,这是adaboost的一个特点。
利用基本分类器的线性组合构建最终分类器是adaboost的另一个特点。