集成学习
什么是集成学习?
集成学习就像是"三个臭皮匠,顶个诸葛亮"。通过组合多个简单的模型,我们可以得到比单个模型更好的预测结果。
举个生活例子:
想象你在参加一个知识竞赛。如果只有你一个人答题,可能会因为知识盲点而答错。但如果是一个团队一起答题,每个人负责自己擅长的领域,最后综合大家的答案,正确率就会大大提高。集成学习就是这样的原理。
Bagging(装袋)
- 多个模型并行训练
- 每个模型使用不同的数据子集
- 最终投票或平均得到结果
Boosting(提升)
- 多个模型串行训练
- 后面的模型关注前面模型的错误
- 逐步提升整体性能
Stacking(堆叠)
- 组合不同类型的模型
- 使用一个模型学习如何组合
- 发挥各个模型的优势
常见的集成学习方法
1. 随机森林(Random Forest)
实际例子:信用评分
使用多个决策树,每棵树关注不同的特征组合,最终综合所有树的预测结果。
- 优点:不容易过拟合,可以处理高维数据
- 缺点:模型可能比较大,训练时间较长
- 适用场景:分类和回归问题
2. XGBoost
实际例子:房价预测
通过梯度提升的方式,逐步构建决策树,每棵树都试图修正前面树的错误。
- 优点:预测准确度高,训练速度快
- 缺点:需要仔细调参,可能过拟合
- 适用场景:结构化数据,竞赛常用
3. LightGBM
实际例子:用户行为预测
使用基于直方图的算法,更高效地构建决策树,适合大规模数据。
- 优点:训练速度快,内存占用小
- 缺点:对参数敏感,需要调优
- 适用场景:大规模数据集