集成学习- bagging、boosting

458 阅读3分钟

这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战

集成学习是什么?如何实现?与其他学习方法的异同?具体的应用场景?
有关集成学习,想先回答这几个问题

集成学习

什么是集成学习

集成学习就是将多个训练模型相融合得出结论。每个模型能够训练数据中的不同特征,因此将多个模型相融合能够得到更好的训练效果

如何实现?

集成学习会分两类:

  1. 序列集成 - 学习器按顺序生成 - 依赖关系 - 错误样本更高权重,提高整体预测效果
  2. 并行集成 - 并行生成 - 独立 平均 降低错误

常见方法

bagging

bagging原理

有放回抽样 - k个模型投票得到分类结果 - 可并行

bagging应用

随机森林 = Bagging + 决策树

boosting

弱分类器组装成强分类器 - 只能顺序 需解决的问题

  1. 每轮如何改变数据权重和概率分布?
  2. 通过什么方式组合 - 加法模型【AdaBoost(先均分,训练后失败例赋较大权重)、GBDT(每一次 减少上一次残差)】
Boosting应用

AdaBoost + 决策树 = 提升树
Gradient Boosting + 决策树 = GBDT - GBDT的改进 - GBT

stacking

训练多个模型的输出 集成学习主要会涉及到2层:第一层是复杂模型对数据进行训练。第二层是对训练后的数据进行结果输出

集成学习面试题

  1. 什么是集成学习算法? 多个弱分类模型集成 - 强分类

  2. 集成学习主要有哪几种框架?
    bagging、boosting、stacking

  3. 简单介绍一下bagging,常用bagging算法有哪些?
    多次采样,均分权重,集体投票 随机森林

  4. 简单介绍一下boosting,常用boosting算法有哪些? 并行,后一个分类器的输入取决于前一个分类器的残差
    Adaboost, GBDT - XGBoost

  5. boosting思想的数学表达式是什么?
    基函数的线性组合

  6. 简单介绍一下stacking,常用stacking算法有哪些?
    多次采样,将输出作为最后的输入特征
    KNN,随机森林,朴素贝叶斯组成,预测结果由loqistic回归组合

  7. 你意识到你的模型受到低偏差和高方差问题的困扰,应该使用哪种算法来解决问题呢?为什么?
    低偏差 - 预测值接近实际值 - 足够灵活,泛化能力差 - bagging解决 高方差 - 正则化/可变重要性图表中的前n个特征

  8. 常用的基分类器是什么?
    决策树 - 无需采样调整样本权重,很好地引入了随机性

  9. 可否将随机森林中的基分类器,由决策树替换为线性分类器或K-近邻?请解释为什么?
    不能 -
    对样本敏感的分类器更适用于Bagging
    线性分类器/K-近邻 较为稳定的分类器 - 方差小
    线性分类器/K-近邻 可能会由于Bagging的采样,导致在训练中更难收敛,增大偏差