机器学习中的bagging技巧

原创 2015年07月10日 17:00:03

bagging的作用

bagging是增强原算法的一种手段。

神经网络、分类问题、回归问题、线性回归中的子集选择问题、k最近邻算法都可以使用bagging来加强。

使用bagging加强后的算法的性能会出现一些有规律的变化。一般而言,若原来的算法的稳定性差,使用bagging后,算法的准确率会得到较大程度的提高。若原来的算法的稳定性高,则使用bagging后,算法的准确率会略微降低。因此,在考虑使用bagging之前,要先知道原算法的稳定性。

研究表明,神经网络、分类问题、回归问题、线性回归中的子集选择问题都是不稳定的,而k最近邻算法是稳定的Breiman [1994]。

bagging简介

设有数据集L={(y_n,x_n), n = 1,…,N},其中y是数值或者类别。记phi(x,L)是一个预测器,其中输入是x,输出的y是算法由x得到的预测值。

如果我们有一组数据集{L_k},其中每个数据集由N个来自数据集L相同分布的观测值组成,那么我们可以基于数据集{L_k}得到比基于数据集L更好的预测器。基于数据集{L_k},可以得到预测器组合{phi(x,L_k)},将分两种情况得到一个{L_k}整体的预测器。

  • y是数值

    整体的预测器是预测器组合{phi(x,L_k)}的平均

  • y是类别

    采用提票机制,预测器组合{phi(x,L_k)}预测出的类别最多的类别作为整体预测器输出的预测类别

如果没有数据集{L_k},可以通过bootstrap sample的方法来产生一组近似的数据集。

Bootstrapping算法

所谓的Bootstrapping法就是利用有限的样本资料经由多次重复抽样,重新建立起足以代表母体样本分布之新样本。
对于一个采样,我们只能计算出某个统计量(例如均值)的一个取值,无法知道均值统计量的分布情况。但是通过自助法(自举法)我们可以模拟出均值统计量的近似分布。有了分布很多事情就可以做了(比如说有你推出的结果来进而推测实际总体的情况)。

bootstrapping方法的实现很简单,假设你抽取的样本大小为n:
在原样本中有放回的抽样,抽取n次。每抽一次形成一个新的样本,重复操作,形成很多新样本,通过这些样本就可以计算出样本的一个分布。新样本的数量多少合适呢?大概1000就差不多行了,如果计算成本很小,或者对精度要求比较高,就增加新样本的数量。

最后这种方法的准确性和什么有关呢?这个我还不是清楚,猜测是和原样本的大小n,和Bootstrapping产生的新样本的数量有关系,越大的话越是精确,更详细的就不清楚了,想知道话做个搞几个已知的分布做做实验应该就清楚了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

随机森林算法的简单总结及python实现

随机森林是数据挖掘中非常常用的分类预测算法,以分类或回归的决策树为基分类器。算法的一些基本要点:   *对大小为m的数据集进行样本量同样为m的有放回抽样;         *对K个特征进行...

集成学习法之bagging方法和boosting方法

集成学习法之bagging方法和boosting方法

集成学习 (AdaBoost、Bagging、随机森林 ) python 预测

首先明确一下回归与分类的区别: 分类和回归的区别在于输出变量的类型。 定量输出称为回归,或者说是连续变量预测; 定性输出称为分类,或者说是离散变量预测。 举个例子: 预测明天的气温是多少度,...

用python参加Kaggle的些许经验总结

最近挤出时间,用python在kaggle上试了几个project,有点体会,记录下。 Step1: Exploratory Data Analysis EDA,也就是对数据进行探索性的分析,一般...

机器学习经典算法详解及Python实现--元算法、AdaBoost

AdaBoost算法有AdaBoost.M1和AdaBoost.M2两种算法,AdaBoost.M1是我们通常所说的Discrete AdaBoost,而AdaBoost.M2是M1的泛化形式。关于A...

机器学习笔记(六)Bagging及随机森林

Bagging和随机森林原理介绍以及利用sklearn的实现。

模型融合之Bagging,及scikit learning

小编昨天第一次参加了校园招聘会面试,应聘的是机器学习和数据挖掘,当然只学了两个月的知识是远远不能应对面试官的一顿吊打。因此,回来好好反思自己的学习方法。还是平时学习没有得到即使的反馈,以及实践练习。所...

Bias-Variance Tradeoff(权衡偏差与方差)

对学习算法除了通过实验估计其泛化性能,我们还希望了解“为什么”具有这样的性能。“偏差-方差分解”(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。偏差和方...

R语言与机器学习中的回归方法学习笔记

机器学习中的一些方法如决策树,随机森林,SVM,神经网络由于对数据没有分布的假定等普通线性回归模型的一些约束,预测效果也比较不错,交叉验证结果也能被接受。下面以R中lars包包含数据集diabetes...

Matlab实现Bagging(集成学习)算法

实验环境:Matlab2016a实验内容:实现Bagging算法,训练多个分量分类器,比较分量分类器和最后的总分类器的分类准确率。Bagging算法:从大小为n的原始数据集中,分别独立随机地选取n’个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)