Bagging vs Boosting vs Stacking

  • Bagging
    用于减小方差。
    使用训练数据的不同随机子集(大小常等于训练数据,采用不放回的方式进行抽取)来训练每个base model,最后对每个base model进行权重相同的vote。分类问题取众数,回归问题取均值。
    并行。
    希望每个base model训练得要足够好,overfit也可以。

  • Boosting
    用于减小偏差。
    迭代地训练base model,每一次会根据上一次迭代中预测错误的情况修改训练样本的权重。
    串行。
    希望每个base model训练得比随机猜好就行。

bagging boosting
样本选择 训练集是在原始集中有放回地进行选取的,选出的各个训练集之间被认为是相互独立的(其实不是)。 每一轮的训练集保持不变,只是训练集中的每个样本在分类器中的权重发生了变化。权重是根据上一轮的结果进行调整的。
样例权重 均匀取样,每个样例权重相等。 根据错误率不断地调整样例权重,错误率越大则对应的权重越高。
预测函数 所有预测函数权重相等。 每个弱分类器都有相应的权重,分类误差小的分类器会有更大的权重。
并行计算 各个预测函数可以并行生成。 各个预测函数只能顺序生成。因为后一个模型的参数更新需要前一个模型的预测结果。
  • Stacking
    用于提升预测结果。
    输入level-2的是level-1的预测结果。
    还有一种是将level-1输出的prob的1~N列与原始数据组成新的特征向量,向量维度变为原始数据特征维度+N,再训练level-2模型。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容