Bagging 简述

作者: 不会停的蜗牛 | 来源:发表于2017-07-07 09:25 被阅读367次

    本文结构:

    • 基本流程
    • 有放回抽样的好处
    • Bagging 特点
    • sklearn 中 Bagging 使用
    • Bagging 和 Boosting 的区别

    bagging:bootstrap aggregating 的缩写。
    是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。

    基本流程:

    1. 对一个包含 m 个样本的数据集,有放回地进行 m 次随机采样,这样得到具有 m 个样本的采样集。
    2. 取 T 个这样的采样集。
    3. 每个采样集训练一个基学习器。
    4. 结合:分类任务,使用简单投票法。回归任务,使用简单平均法。

    有放回抽样的好处

    这种有放回抽样会有 63.2% 的样本出现在采样集中,而剩下的 36.8% 样本可以作为验证集对模型的泛化性能进行包外估计。

    当基学习器是决策树时,可以用包外样本来辅助剪枝,
    还可以用于估计决策树中各结点的后验概率来辅助对零训练样本结点的处理。

    基学习器是神经网络时,用包外样本来辅助早期停止来减小过拟合。


    Bagging 特点

    Bagging 主要关注降低方差,是要降低过拟合,而不会降低偏差,因此最好不要用高偏差的模型。
    在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更为明显。例如当基学习器是决策树时,Bagging 是并行的生成多个决策树,此时可以不做剪枝,这样每个都是强学习器,就会有过拟合的问题,但是多个学习器组合在一起,可以降低过拟合。


    scikit-learn 中 Bagging 使用例子:

    from sklearn.ensemble import BaggingClassifier
    from sklearn.neighbors import KNeighborsClassifier
    model = BaggingClassifier(KNeighborsClassifier(), max_samples=0.5, max_features=0.5)
    

    Bagging 和 Boosting 的区别

    1. 样本选择:Bagging 的训练集是在原始集中有放回选取的,各轮训练集之间是独立的,每个样例的权重相等;Boosting 的训练集不变,只是每个样例在分类器中的权重发生变化,错误的样本会得到更大的重视;
    2. Bagging 的预测函数没有权重之分;Boosting 的预测函数是有权重之分,效果好的函数权重大;
    3. Bagging 的各个预测函数并行产生,容易 map-reduce ,Boosting 的预测是顺序产生,后一个模型参数需要前一轮模型的结果。

    学习资料:
    《机器学习》
    http://f.dataguru.cn/thread-301569-1-1.html
    http://scikit-learn.org/stable/modules/ensemble.html#bagging
    http://www.cnblogs.com/liuwu265/p/4690486.html
    http://www.jianshu.com/p/708dff71df3a


    推荐阅读 历史技术博文链接汇总
    http://www.jianshu.com/p/28f02bb59fe5
    也许可以找到你想要的:
    [入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]

    相关文章

      网友评论

      • 维真_dfb9:姐 感觉本科生好难找到机器学习的工作呀。要不等您以后干上机器学习了之后。招小弟的时候把我招进去吧😅
        b98d760f040a:what? 是女大神?!
        不会停的蜗牛:@维真_dfb9 暂时找不到就也别放弃,要么去用这技术的公司,但是做你的专长工作后慢慢转,要么就是原地打磨,做一些 ml 相关的项目,时机到了自然就能去了。

      本文标题:Bagging 简述

      本文链接:https://www.haomeiwen.com/subject/ojklhxtx.html