集成学习
通过构建并结合多个学习器来解决同一个问题,从而提高预测性能。
Bagging
核心思想: 对数据集进行有放回的抽样得到多个不同的训练集,然后分别在这些训练集上训练出多个模型。最终的预测结果是通过将这些模型的结果综合起来决定。对于分类问题通常是通过投票的方式,而对于回归问题则是取平均值。例如:随机森林、KNN 模型。
随机森林优势: 从数据集提取随机的训练集和随机的特征构建多个树,执行后取平均值或多数决。
- 能够处理很高维度(feature 很多)的数据,并且不用做特征选择
- 在训练完后,它能够给出哪些 feature 比较重要
- 可以进行可视化展示,便于分析
- 容易做成并行化方法,速度比较快
Boosting
核心思想: 逐步优化,每一次迭代都会针对之前所有学习器的错误进行学习,试图纠正前一轮学习中的错误。例如:AdaBoost 和梯度提升决策树(Gradient Boosting Decision Trees, GBDT)、Xgboost。
Stacking
核心思想: 利用多个不同的基础模型对训练集进行学习,并将这些基础模型的输出作为新的特征输入到一个元模型中进行学习。充分利用不同模型之间的差异性,从而提高预测性能(拿一堆分类器堆叠使用)。