集成学习
-
思想,将多个弱分类器按照某种方式组合起来,形成一个强分类器(三个臭皮匠赛过诸葛亮)
-
Bagging,把数据集通过有放回的抽样方式,划分为多个数据集,分别训练多个模型。针对分类问题,按照少数服从多数原则进行投票,针对回归问题,求多个测试结果的平均值
-
Stacking,通常是不同的模型,而且每个分类都用了全部训练数据,得到预测结果y1, y2, …, yk,然后再训练一个分类器 Meta Classifier,将这些预测结果作为输入,得到最终的预测结果
-
Boosting,与Bagging一样,使用的相同的弱学习器,不过是以自适应的方法顺序地学习这些弱学习器,即每个新学习器都依赖于前面的模型,并按照某种确定性的策略将它们组合起来
-
两个重要的 Boosting 算法:AdaBoost(自适应提升)和Gradient Boosting(梯度提升)
-
AdaBoost,使用前面的学习器用简单的模型去适配数据,然后分析错误。然后会给予错误预测的数据更高权重,然后用后面的学习器去修复
-
Boosting通过把一些列的弱学习器串起来,组成一个强学习器
Boosting与Bagging
- 结构上,Bagging是基分类器并行处理,而Boosting是串行处理
- 训练集,Bagging的基分类器训练是独立的,而Boosting的训练集是依赖于之前的模型
- 作用,Bagging的作用是减少variance,而Boosting在于减少bias
对于Bagging,对样本进行重采样,通过重采样得到的子样本集训练模型,最后取平均。因为子样本集的相似性,而且使用相同的弱学习器,因此每个学习器有近似相等的bias和variance,因为每个学习器相互独立,所以可以显著降低variance,但是无法降低bias
对于Boosting,采用顺序的方式最小化损失函数,所以bias自然是逐步下降,子模型之和不能显著降低variance
未完待续。。。