装袋
装袋(bagging)即引导聚集算法(bootstrap aggregation),这种方法通过构造一系列弱分类器(weak classifier),然后以一定的方式将它们组合成一个强分类(strong classifier),可以有效降低结果方差,避免过拟合。
装袋流程图:
算法流程:
案例分析
- 进行5轮随机有放回抽样
- 对于每一轮抽样都生成一个弱分类器
最后我们使用投票将5个分类器的结果融合在一起得出最后的分类结果,最终的预测准确率达到90%,高于各个弱分类器的预测准确率。
特点- 装袋通过降低弱分类器的预测方差,改善了整体的泛化性能
- 装袋的性能依赖于各个若分类的稳定性
- 由于每个样本被选中的概率相同,装袋并不侧重于数据集中的任何特例
随机森林
随机森林(Random Forest, RF),是一种利用集成学习中装袋的思想将多棵决策树集成的算法,其基本单元是决策树。
算法流程
随机森林学习算法效果要优于基于决策树的装袋学习算法。
特点
- 能够处理很高维度(feature很多)的数据,并且不用做特征选择
- 在训练完后,能够给出哪些特征比较重要
- 训练速度快
- 容易做成并行化方法,实现简单
- 泛化性能强,能抑制过拟合
提升
装袋(bagging)算法中,基分类器之间不存在依赖关系,基分类器可以并行生成;提升(boosting)算法中,基分类器之间存在强依赖关系,基分类器需要串行生成。
Boosting是一种可将弱学习器提升为强学习器的算法,基分类器串行生成,其中最著名的算法代表是AdaBoosting(Adaptive Boosting,自适应增强算法。)
AdaBoost训练过程(二分类):
** Gradient Boosting**
损失函数
GBDT