Bagging与随机森林

下图是基于树的算法的发展历程
在这里插入图片描述

1、Bagging

Bagging [Breiman, 1996a] 是并行式集成学习方法最著名的代表.

1.1、Bagging原理

bagging算法:bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。
在这里插入图片描述

  • 随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果我们对有m个样本训练集做T次的随机采样,,则由于随机性,T个采样集各不相同。
    注意到这和GBDT的子采样是不同的。GBDT的子采样是无放回采样,而Bagging的子采样是放回采样。

对于一个样本, 它在某一次含 m m m个样本的训练集的随机采样中,每次被采集到的概率是 1 m \frac{1}{m} m1, 不被采集到的概率 1 − 1 m 1-\frac{1}{m} 1m1。如是果 m m m次采样都没有被采集到的概率 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1m1)m。当 → ∞ \rightarrow \infty 时, ( 1 − 1 m ) m → 1 e ≃ 0.368 \left(1-\frac{1}{m}\right)^{m} \rightarrow \frac{1}{e} \simeq 0.368 (1m1)me10.368也就是说, 在 bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。对于这部分大约36.8%的没有被采样到的教据, 我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。

  • bagging对于弱学习器没有限制,这和Adaboost一样。但是最常用的一般也是决策树和神经网络

  • bagging的集合策略也比较简单,对于分类问题,通常使用简单投票法,得到最多票数的类别或者类别之一为最终的模型输出。对于回归问题,通常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最终的模型输出。

  • 由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些。

从偏差方差分解的角度看, Bagging 主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显.

2、随机森林

2.1 算法原理

随机森林是对bagging的进化,随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离bagging的范畴。
具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d个属性)中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分. 这里的参数k控制了随机性的引入程度;若令k = d , 则基决策树的构建与传统决策树相同;若令k = 1, 则是随机选择一个属性用于划分; 一般情况下,推荐值k = l o g 2 d log_2 d log2d
Bagging 中基学习器的"多样性"仅通过样本扰动(通过对初始训练集采样)而来不同,随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升.

随着个体学习器数目的增加,随机森林通常会收敛到更低的泛化误差. 值得一提的是,随机森林的训练效率常优于Bagging,因为在个体决策树的构建过程中, Bagging使用的是" 确定型" 决策树,在选择划分属性时要对结点的所有属性进行考察,而随机森林使用的" 随机型"决策树则只需考察一个属性子集。

2.2 随机森林的特点

  • 在当前所有算法中,具有极好的准确率
  • 能够有效地运行在大数据集上
  • 能够处理具有高维特征的输入样本,而且不需要降维
  • 能够评估各个特征在分类问题上的重要性
  • 在生成过程中,能够获取到内部生成误差的一种无偏估计
  • 对于缺省值问题也能够获得很好得结果
  • 既可以用于回归也可以分类

2.3 随机森林的生成

  • 1)如果训练集大小为N,对于每棵树而言,随机且有放回地从训练集中的抽取N个训练样本(这种采样方式称为bootstrap sample方法),作为该树的训练集;(每棵树的训练集都是不同的,而且里面包含重复的训练样本)
  • 2)如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的;
  • 3)每棵树都尽最大程度的生长,并且没有剪枝过程

注意

  • 为什么要随机抽样训练集?
      如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的,这样的话完全没有bagging的必要;
  • 为什么要有放回地抽样?
    如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是"有偏的",都是绝对"片面的"(当然这样说可能不对),也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决,这种表决应该是"求同",因此使用完全不同的训练集来训练每棵树这样对最终分类结果是没有帮助的,这样无异于是"盲人摸象"。
  • 随机森林分类效果(错误率)与两个因素有关:
    森林中任意两棵树的相关性:相关性越大,错误率越大;
    森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。

减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数

2.4 袋外错误率(oob error)

上面我们提到,构建随机森林的关键问题就是如何选择最优的m,要解决这个问题主要依据计算袋外错误率oob error(out-of-bag error)
  随机森林有一个重要的优点就是,没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。
  我们知道,在构建每棵树时,我们对训练集使用了不同的bootstrap sample(随机且有放回地抽取)。所以对于每棵树而言(假设对于第k棵树),大约有1/3的训练实例没有参与第k棵树的生成,它们称为第k棵树的oob样本。
  而这样的采样特点就允许我们进行oob估计,它的计算方式如下:
  (note:以样本为单位)
  1)对每个样本,计算它作为oob样本的树对它的分类情况(约1/3的树);
  2)然后以简单多数投票作为该样本的分类结果;
  3)最后用误分个数占样本总数的比率作为随机森林的oob误分率。

3 结合策略

3.1 平均法

假定集成包含 T T T 个基学习器 { h 1 , h 2 , … , h T } , \left\{h_{1}, h_{2}, \ldots, h_{T}\right\}, {h1,h2,,hT}, 其中 h i h_{i} hi 在示例 x x x 上的输出 为 h i ( x ) . h_{i}(\boldsymbol{x}) . hi(x). 本节介绍几种对 h i h_{i} hi 进行结合的常见策略.

对数值型输出 h i ( x ) ∈ R , h_{i}(\boldsymbol{x}) \in \mathbb{R}, hi(x)R, 最常见的结合策略是使用平均法 (averaging).

  • 简单平均法(simple averaging)
    H ( x ) = 1 T ∑ i = 1 T h i ( x ) H(\boldsymbol{x})=\frac{1}{T} \sum_{i=1}^{T} h_{i}(\boldsymbol{x}) H(x)=T1i=1Thi(x)
  • 加权平均法(weighted averaging)
    H ( x ) = ∑ i = 1 T w i h i ( x ) H(\boldsymbol{x})=\sum_{i=1}^{T} w_{i} h_{i}(\boldsymbol{x}) H(x)=i=1Twihi(x)
    其中 w i w_{i} wi 是个体学习器 h i h_{i} hi 的权重, 通常要求 w i ⩾ 0 , ∑ i = 1 T w i = 1 w_{i} \geqslant 0, \sum_{i=1}^{T} w_{i}=1 wi0,i=1Twi=1.

加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠.尤其是对规模比较大的集成来说?要学习的权重比较多,较容易导致过拟合.因此,实验和应用均显示出,加权平均法未必一起优于简单平均法[Xu et al., 1992; Ho et al., 1994;Kittler et al., 1998]. 一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法.

3.2 投票法

  • 绝对多数投票法,某标记超过半数,则预测为改标记,否则拒绝预测。
  • 相对多数投票法,预测为最多的标记,如果平票,则随机一个。
  • 加权投票法,再分类器中添加权重,再做相对多数投票法。

3.3 学习法

当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合.Stacking[Wolpert,1992;Breiman,1996b]是学习法的典型代表.这里我们把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器(meta-learner).

次级学习器的输入属性表示和次级学习算法对Stacking集成的泛化性能有很大影响.有研究表明,将初级学习器的输出类概率作为次级学习器的输入属性,用多响应线性回归(Multi-response Linear Regression,简称MLR)作为次级学习算法效果较好[Ting and Witten,1999],在MLR中使用不同的属性集更佳[Seewald,2002]

4 为什么说bagging是减少variance,而boosting是减少bias?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后,简单总结一下,基于树的算法可以分为Bagging与Boosting。

  • Bagging:训练数据是有放回随机采样N个训练数据,结果基于投票机制;弱学习器没有限制,这和Adaboost一样。但是最常用的一般也是决策树和神经网络。
  • 随机森林:训练数据是有放回抽样N个训练数据,特征也是随机抽取k个(共d个),结果基于投票机制。注意:随机森林的树没有剪枝过程。
  • 由于是随机抽样,所以大约会有1/3的数据未被抽到,称作袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。
  • bagging是减少variance,而boosting是减少bias。
  • Bagging的算法既可以回归也可以分类,取决于采用的是CART回归还是分类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/7901.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

随机森林-参数解说

sklearn–随机深林 1.集成算法概述 集成学习&#xff08;ensemble learning&#xff09;是时下非常流行的机器学习算法&#xff0c;它本身不是一个单独的机器学习算法&#xff0c;而是通过在数据上构建多个模型&#xff0c;集成所有模型的建模结果。基本上所有的机器学习领域都…

Random Forest随机森林算法

Random Forest是加州大学伯克利分校的Breiman Leo和Adele Cutler于2001年发表的论文中提到的新的机器学习算法&#xff0c;可以用来做分类&#xff0c;聚类&#xff0c;回归&#xff0c;这里只简单介绍该算法在分类上的应用。 Random Forest&#xff08;随机森林&#xff09;算…

【随机森林】random forests 简单介绍

Random Forest&#xff0c;顾名思义 Random 就是随机抽取&#xff1b; Forest 就是说这里不止一棵树&#xff0c;而由 一群决策树组成的一片森林 &#xff0c;连起来就是用随机抽取的方法训练出一群决策树来完成分类任务。RF用了两次随机抽取, 一次是对训练样本的随机抽取; 另一…

随机森林!

定义:在以决策树为基学习器构建Bagging集成的基础上&#xff0c;进一步在决策树节点分裂时引入随机属性扰动。 随机性体现(与传统决策树的差异):对基决策树的每个节点&#xff0c;先从该节点的属性集合中随机选择包含K(log2(d))个属性的子集&#xff0c;然后再从这个子集中选择…

随机森林 (Random Forests) 简单介绍与应用

1 集成方法(Ensemble methods) 1.1 什么是集成方法 简单来说&#xff0c;集成方法 就是组合多个模型&#xff0c;以获得更好效果。 1.2 两种集成方法 平均法(averaging methods)&#xff1a;也有人直接称之为“袋装法”&#xff0c;所有算法进行 相互独立 训练得到各自的模…

随机森林--

----------------------集成学习---------------------- 集成学习可以被分为三个主要研究领域&#xff1a; -----------------------------------------------------模型融合----------------------------------------------------- 模型融合在最初的时候被称为“分类器结合…

R随机森林实现

原文链接&#xff1a;来自公众号生信数据挖掘 目录 R实现随机森林随机森林R包估值过程袋外错误率&#xff08;oob error&#xff09;R randomForest函数实现安装程序包&#xff0c;查看样本数据结构建模与观察 R实现随机森林 该文只简单的讲解关于的R的随机森林具体实现步骤&a…

随机森林 – Random forest

随机森林 – Random forest 随机森林是一种由决策树构成的集成算法&#xff0c;他在很多情况下都能有不错的表现。 本文将介绍随机森林的基本概念、4 个构造步骤、4 种方式的对比评测、10 个优缺点和 4 个应用方向。 什么是随机森林&#xff1f; 随机森林属于 集成学习 中的 …

随机森林原理详解 random forest 代码+参数讲解

事实上随机森林的基本单元决策树很早就被提出来了&#xff0c;只不过单个决策树效果不好。这个情况和神经网络差不多。 到了2001年Breiman把分类树组合成随机森林&#xff08;Breiman 2001a&#xff09;&#xff0c;即在变量&#xff08;列&#xff09;的使用和数据&#xff0…

随机森林及应用

学习了B站视频《随机森林及应用》&#xff0c;记录一下学习笔记啦&#xff0c;原视频链接&#xff1a;Python机器学习算法实践Ⅲ-随机森林及应用。 一、随机森林属于集成学习&#xff0c;所以首先了解集成学习。在集成学习中&#xff0c;主要分为Bagging算法和Boosting算法。 B…

随机森林(Random Forests)介绍

1.决策树&#xff08;Decision Tree&#xff09; 决策树是一种树形结构&#xff0c;其中每个内部节点表示一个属性上的测试&#xff0c;每个分支代表一个测试输出&#xff0c;每个叶节点代表一种类别。常见的决策树算法有C4.5、ID3和CART。ID3算法用的是信息增益&#xff0c;C…

使用随机森林进行特征选择

绘制随机森林每棵树的决策边界 首先导入必要的库函数&#xff1a; from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_moons from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt import numpy as…

python实现随机森林

定义&#xff1a; 随机森林指的是利用多棵决策树对样本进行训练并预测的一种分类器。可回归可分类。 所以随机森林是基于多颗决策树的一种集成学习算法&#xff0c;常见的决策树算法主要有以下几种&#xff1a; 1. ID3&#xff1a;使用信息增益g(D,A)进行特征选择 2. C4.5&…

教你体验目前最火AI - 在craft AI assistant 使用chatGPT

atGPT大火之后&#xff0c;很多人都想体验一把&#xff0c;今天为大家推荐一种免费方式&#xff0c;体验chatGPT同款内核的AI助手。 craft AI assistant Craft 推出的 AI 助手产品 Craft AI Assistant&#xff0c;并且现在就可以使用。根据 Craft 官方介绍&#xff0c;Craft …

【ChatGPT+AI】持续更新

ChatGPT的缘分 ChatGPT的缘分 一、小白必知1.1ChatGPT是什么&#xff1f;1.2ChatGPT怎么用&#xff1f;1.3ChatGPT登录注意事项 二、ChatGPT实战2.1什么Prompt&#xff1f;2.2ChatGPT怎么发图片2.3ChatGPT快速制作PPT 三、其他AI与免费镜像网站四、星球介绍 ChatGPT的缘分 大家…

DetectGPT VS ChatGPT:AI反击战?

1.背景 随着 ChatGPT 的持续火爆&#xff0c;现在无论哪个行业&#xff0c;几乎是人尽皆知。同时&#xff0c;利用 ChatGPT 进行造假作弊的情况也是层出不穷&#xff0c;尤其是在教育和传媒行业。在美国的一项千人调查中&#xff0c;有89%的学生表示在家庭作业中使用了 ChatGP…

多国拟发ChatGPT禁令 关“野兽”的笼子要来了?

“人工智能想越狱“、”AI产生自我意识”、“AI终将杀死人类”、“硅基生命的进化”.......曾经只在在赛博朋克等科技幻想中出现的剧情&#xff0c;在今年走向现实&#xff0c;生成式自然语言模型正在遭受前所未有的质疑。 聚光灯下最瞩目的那个是ChatGPT&#xff0c;3月底到4…

ChatGPT从入门到精通,深入认识Prompt

ChatGPT从入门到精通&#xff0c;一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定 让ChatGPT帮你高效实现职场办公&#xff01;行动起来吧。欢迎关注专栏 。。。。。 还有更多。。。。&…

【Prompting】ChatGPT Prompt Engineering开发指南(1)

ChatGPT Prompt Engineering开发指南1 Prompting指南设置 提示原则策略1&#xff1a;使用分隔符清楚地指示输入的不同部分策略2&#xff1a;要求结构化输出策略3&#xff1a;让模型检查条件是否满足策略4: “Few-shot”提示 原则2&#xff1a;给模型时间“思考”策略1&#xff…

【ChatGPT】Prompt Engineering入门

Prompt Engineering入门 一、什么是 Prompt Engineering&#xff1f;二、我们还需要学习 PE 吗&#xff1f;三、Prompt基础原则 一、什么是 Prompt Engineering&#xff1f; 简单的理解它是给 AI 模型的指令。它可以是一个问题、一段文字描述&#xff0c;甚至可以是带有一堆参数…