机器学习中的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产生的新样本的数量有关系,越大的话越是精确,更详细的就不清楚了,想知道话做个搞几个已知的分布做做实验应该就清楚了。

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

【机器学习】决策树及Bagging, Random Forest和Boosting模型融合

前言一晃一个月没写博客了。懒癌又犯了TT。 之前提到过,写博客是为了记录实习中学到的点滴。博主在某家做travelling IT solution的公司实习。公司核心业务还是做Global Dist...

机器学习中Bagging和Boosting的区别

Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法。即将弱分类器组装成强分类器的方法。       首先...

机器学习方法(六):随机森林Random Forest,bagging

前面[机器学习方法(四)决策树](http://blog.csdn.net/xbinworld/article/details/44660339)讲了经典的决策树算法,我们讲到决策树算法很容易过拟合,...

集成学习(Boosting,Bagging和随机森林)

今天看了一下集成学习部分,把相关知识点总结了一下。这个是无公式版,想看公式的话,请看《机器学习》--周志华  这本书。 通过结合多个学习器完成学习任务,也叫“多分类器系统”、“基于委员会的学习”等。...

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

实验环境:Matlab2016a实验内容:实现Bagging算法,训练多个分量分类器,比较分量分类器和最后的总分类器的分类准确率。Bagging算法:从大小为n的原始数据集中,分别独立随机地选取n’个...

MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)

train_data是训练特征数据, train_label是分类标签。Predict_label是预测的标签。MatLab训练数据, 得到语义标签向量 Scores(概率输出)。1.逻辑回归(多项式...

Bagging 的python实现

#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on 2017-08-28 @author: panda_zjd """ impo...

模型融合之Bagging,及scikit learning

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

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

首先明确一下回归与分类的区别: 分类和回归的区别在于输出变量的类型。 定量输出称为回归,或者说是连续变量预测; 定性输出称为分类,或者说是离散变量预测。 举个例子: 预测明天的气温是多少度,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器学习中的bagging技巧
举报原因:
原因补充:

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