-
Bagging
-
思想:
-
- 在包含N个样本的数据集中采用有放回的抽样方式随机抽取一定数量(可以为N)的样本,构成一个数据集;
- 按照步骤i中的方式得到M个数据集;
- 利用机器学习的方法(例如:SVM,决策树,神经网络……)对得到的M个数据集,训练出M个弱模型(比随机模型效果好);
- 集成M个弱模型的结果作为最终结果;
Bagging就是通过M个弱模型的结果,通过并行集成的方式来获得最终结果。因为M个数据集是相互独立的,因此这M个弱模型之间也是相互独立的,在最终的集成结果时,每个模型的权重是一样的。这是和Boosting所不同的。
-
Boosting
-
思想:
-
- 每一次都根据上一次训练得到的模型结果,调整数据集样本分布,然后再生成下一个模型;
- 直到生成M个模型;
- 根据M个模型的结果集成得到最终的结果;
-
-
集成方式:
-
每个模型的重要度作为每个模型结果的权重,然后加权计算得出结果。
可以看出Boosting中生成多个模型的方式并不是和Bagging一样并行生成,而是串行生成,因此也决定了多个模型结果的集成是串行集成,也就是每个模型的结果权重并不是一样的。如何来调整样本分布以及计算模型的重要度,不同方法有不同的定义,详情参见具体方法。
-
Stacking
- 理论总结
- 调参总结
- Blending
-
- 理论总结
- 调参总结
参考文献:
【1】Machine-Learning-for-Beginner-by-Python3