zoukankan      html  css  js  c++  java
  • 【机器学习笔记之六】Bagging 简述

    本文结构:

    • 基本流程
    • 有放回抽样的好处
    • 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 使用例子:

    1 from sklearn.ensemble import BaggingClassifier
    2 from sklearn.neighbors import KNeighborsClassifier 
    3 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

  • 相关阅读:
    ASP.NET中级学习3
    C#面向对象学习笔记
    Javascript学习笔记
    FormView控件使用
    ASP.NET初级学习
    ListView控件是使用
    Java NIO 学习笔记一
    堆栈和托管堆 c#
    安装php7.2并且整合nginx且分开部署
    Python 安装requests和MySQLdb
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/7387650.html
Copyright © 2011-2022 走看看