Bagging

同一个学习算法在来自同一分布的多个不同的训练数据集上训练得到的模型偏差可能较大,即模型的方差(variance)较大,为了解决这个问题,可以综合多个模型的输出结果,对于回归问题可以取平均值,对于分类问题可以采取多数投票的方法。这就是Bagging的核心思想。
Bagging(Bootstrap Aggregation)是常用的统计学习方法,其综合的基本学习器可以是各种弱学习器。

Bootstrap Sample

要想综合N个弱分类器(决策树)的结果,我们需要采样N个训练数据集,在实际应用中获取N个训练数据集往往不现实,BootStrap 采样提供了一种有效的解决方法。

有放回的随机采样,同cross-validation一样,是一种resample技术。示例如下:

这里写图片描述

采用这样的方式解决了获取N个服从同一分布的原始数据集不现实的问题,而且在可接受程度上,可以认为Bootstrap 采样方式不影响到模型的准确性(以方差来衡量),即可以等价于使用N个不同的原始数据集,详见参考文献3中Bootstrap Sample部分。
然而有研究表明,有放回的随机采样,其实对模型的性能来说不是至关重要的,也可以用无放回的随机采样来取代。

Bagging算法

将训练数据集进行N次Bootstrap采样得到N个训练数据子集,对每个子集使用相同的算法分别建立决策树,最终的分类(或回归)结果是N个决策树的结果的多数投票(或平均)。

两个主要步骤

上述Bagging算法涉及两个主要步骤
- 平均,目的是降低方差。 Z1 , Z2 ,…, Zn 的方差为 σ2 , Z¯¯¯ 的方差是 σ2/n .采用Bagging策略明显减低模型方差(variance),如下图所示。
- Bootstrap采样。为了实现上述平均操作,我们需要多个训练数据集来训练模型,而在应用中找N个不同的训练集合不现实,所以对同一个训练集使用有放回的bootstrap采样获取N个训练集

这里写图片描述

Bagging较单棵决策树来说,降低了方差,但由于将多棵决策树的结果进行了平均,这损失了模型的可解释性。

特征重要性

对于回归(或分类)树,可以利用每个特征使树的RSS(或Gini 指数)平均降低的量来度量特征的重要性。

参考

1.http://scikit-learn.org/stable/auto_examples/ensemble/plot_bias_variance.html#id2
2.Maindonald J. Statistical Learning from a Regression Perspective[J]. Journal of Statistical Software, 2009, 29(1): 1-4.
3.Huang J Z. An Introduction to Statistical Learning: With Applications in R By Gareth James, Trevor Hastie, Robert Tibshirani, Daniela Witten[J]. Journal of Agricultural Biological and Environmental Statistics, 2014, 19(4): 556-557.

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个开源的深度学习框架,而bagging是一种集成学习方法。PyTorch bagging指的是使用PyTorch框架来实现bagging算法。 Bagging是一种基于自助采样的集成学习方法,其核心思想是通过构建多个基分类器的准确定义函数,再通过投票或平均等方式进行集成,提高整体的泛化性能。PyTorch提供了灵活而强大的功能,可以很方便地实现bagging算法。 在PyTorch中实现bagging,首先需要定义基分类器。可以选择不同的深度学习模型作为基分类器,如卷积神经网络(CNN)或循环神经网络(RNN)。基分类器可以根据具体任务选择合适的模型结构和参数设置。 然后,需要进行自助采样。自助采样是指从原始数据集中有放回地随机抽样生成多个不同的训练集。PyTorch提供了数据集(Dataset)和数据加载器(DataLoader)等工具,可以方便地实现自助采样。 接下来,使用基分类器对每个训练集进行训练,并得到多个单独的分类器。PyTorch提供了优化器(Optimizer)和损失函数(Loss Function)等工具,可以方便地进行模型训练和参数优化。 最后,使用投票或平均等方式对多个基分类器进行集成,得到最终的集成分类器。PyTorch提供了丰富的操作函数和工具包,可以方便地实现集成方法。 总之,PyTorch bagging是使用PyTorch框架实现bagging算法的过程。通过使用PyTorch的强大功能,可以快速简便地实现bagging算法,并提升深度学习模型的泛化性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值