《ISLR》学习笔记 —— Bagging、随机森林、Boosting
Bagging、随机森林、Boosting
- 1.Bagging(装袋算法)
- 2.随机森林
- 3.Boosting
- 参考
1.Bagging(装袋算法)
bootstrap抽样:反复地从原始数据集中有放回地抽取观测数据,得到多个数据集。
- 优点:适用于样本数量较小,可从原始数据中产生多个训练集。
- 缺点:会引入相同样本,改变了原始数据的分布,导致偏差;模型的可理解性差。
在决策树中(或其他高方差模型中),由于其高方差低偏差地特性(即对训练集样本很敏感),样本发生个别变化时,生成的决策树可能会完全不同。为了减小高方差,引入Bagging方法。
假设有n个数据集,Z1,Z2,...ZnZ_1,Z_2,...Z_nZ1,Z2,...Zn,每个数据集的方差为σ2\sigma^2σ2,则其样本平均值Zˉ\bar{Z}Zˉ的方差为σ2n\frac{\sigma^2}{n}nσ2。
可以发现,对一系列观测值取平均可以显著降低方差。因此,类比可知,依赖原训练集生成许多新的训练集,再分别对新的训练集训练模型f^1(x),f^2(x),...f^B(x)\hat{f}^1(x),\hat{f}^2(x),...\hat{f}^B(x)f^1(x),f^2(x),...f^B(x),最终取得各模型预测结果的平均。(分类问题即可以少数服从多数)
f^avg(x)=1B∑b=1Bf^b(x)\hat{f}_{avg}(x)=\frac{1}{B}\sum_{b=1}^B\hat{f}^b(x) f^avg(x)=B1b=1∑Bf^b(x)
Bagging(Boostrap aggregation):给定一个训练集,采用boostrap抽样生成b个训练集,再分别这b个训练集去训练模型,生成b个模型,再通过取平均值或取多数票等方法得到模型预测或分类结果。
- Out-of-Bag Error(袋外错误)
运用Boostrap抽样方式不可避免地存在一个问题,即当从样本数为n的训练集D中,运用Bootstrap抽样时,第j个观测值在bootstrap抽样集中的概率为:
P=(1−(1−1n)n)limn→∞P=1−1e≈23P= (1-(1-\frac{1}{n})^n)\\ \lim_{n\rightarrow\infty }P=1- \frac{1}{e}\approx \frac{2}{3} P=(1−(1−n1)n)n→∞limP=1−e1≈32
可以得知,每个抽样集平均利用了原数据集的三分之二去训练子模型,而剩下的三分之一数据没有被利用去拟合该子模型,称这部分数据为Out-of-Bag(OOB)观测值(即子模型拟合未用到的训练集)。
OOB误分率:对所有样本,计算它作为OOB样本时的预测或分类情况;通过平均或多数投票的方式得到该样本的分类样本;最后用误分个数占样本总数的比率作为OOB误分率。(因为OOB样本的预测利用的模型并不是用其拟合的模型,相当于测试集,所以可以近似将OBB错误作为test error)
2.随机森林
随机森林是在Bagging方法上的改进,子模型为决策树,在Bagging中抽样时进行模型拟合时,利用了观测值的所有特征p个,而在随机森林模型中,各子模型仅利用观测值所有特征中m=pm=\sqrt{p}m=p个进行拟合。
- m越大,单棵树的效果会提升,但树之间相关性也会增强
- B越大,模型效果会有提升,但计算量会变大
优势:降维;当强特征存在时,bagging生成的各树模型可能高度相似,因此平均或多数投票不能够显著降低方差,而随机森林平均上(p−m)/p(p-m)/p(p−m)/p的split不会考虑强特征。
劣势:对小量数据集和低维数据集的分类不一定可以得到很好的效果。
bagging与随机森林均不会因为B值的增大而产生过拟合,所以一般采用较大的B去减小误差。
一方面:在样本的抽样中,会产生重复的样本,这样每一个子模型在拟合时都不会采用全部的样本,就不会产生过拟合现象。
另一方面:在特征值的采样中,选择有限的特征,这样每一个子模型可能不会生成完整的决策树(效果上类似于剪枝),所以不会产生过拟合现象。
3.Boosting
提升方法(Boosting)在该文进行了详细阐述。
提升树中,子模型的split为1时(即模型为树桩)通常效果较好,因为每次迭代产生的子模型都依赖于上一个子模型的结果(即与每次迭代的残差有关),因此每个模型之间的相关度越低,提升的效果越好。此时每一个子模型只包括一个特征,相当于加法模型。split越多,子模型考虑的特征数就越多,interaction depth就越大。
Boosting与前两者的区别:
- Boosting根据错误率调整样本权重,错误率越大的样本权重越大;
- Bagging使用的是均匀取样,每个样本权重相等。
- Boosting各个预测函数必须按顺序迭代生成;
- Bagging各个预测函数可以并行生成。
- Boosting中误差越小的预测函数其权重越大;
- Bagging所有的预测函数的权重相等。
参考
[1]《An introduction to statistical learning; with Application in R》
《ISLR》学习笔记 —— Bagging、随机森林、Boosting相关推荐
- 随机森林分类算法python代码_Python机器学习笔记:随机森林算法
随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为&q ...
- 【进阶版】机器学习之集成学习介绍、随机森林模型经验贴(12)
目录 欢迎订阅本专栏,持续更新中~ 本专栏前期文章介绍! 机器学习配套资源推送 进阶版机器学习文章更新~ 点击下方下载高清版学习知识图册 集成学习 个体与集成 Boosting Bagging与Ran ...
- 集成学习中的随机森林
摘要:随机森林是集成算法最前沿的代表之一.随机森林是Bagging的升级,它和Bagging的主要区别在于引入了随机特征选择. 本文分享自华为云社区<集成学习中的随机森林>,原文作者:ch ...
- Opencv学习笔记 - 使用opencvsharp和Boosting算法处理分类问题
决策树非常有用,但单独使用时它并不是表现最佳的分类器.改进的方法随机森林和Boosting算法.随机森林与Boosting算法都是在内部循环中使用决策树的,因此继承了决策树的许多优良属性,它们通常是机 ...
- 机器学习 ||《菜菜的sklearn机器学习》笔记——2 随机森林
1 集成算法 集成学习 非常流行的机器学习算法,通过在数据上构建多个模型,集成所有模型的结果. 多个模型集成成为的模型叫做集成评估器,其中的每个模型叫做基评估器.通常来说,有三类集成算法:袋装法(Ba ...
- 【机器学习】集成学习ensemble之随机森林
Bootstrapping Bootstrapping从字面意思翻译是拔靴法,从其内容翻译又叫自助法,是一种再抽样的统计方法.自助法的名称来源于英文短语"to pull oneself up ...
- Xposed学习笔记之蚂蚁森林能量自动收取模块
本文主要借鉴尼古拉斯_赵四大佬的文章 本人xposed小白一枚,看了尼古拉斯_赵四大佬的那篇文章入门,深入的原理什么的,大家可以深入研究一下尼古拉斯_赵四大佬的文章. 学习笔记 调试常用的函数Log. ...
- 机器学习笔记(3) 随机森林
random forest 和 extra-trees是对decison tree做ensemble而得到最终模型的两种算法. 阅读本文前需要先了解一下 机器学习笔记1:决策树 机器学习笔记2:集成学 ...
- numpy学习笔记之随机采样函数
numpy的随机采样函数 np.random.choice(a, size=None,replace=None, p=None) 功能:Generates a random sample from a ...
最新文章
- 在leangoo里怎么插入泳道,上下移动泳道和删除泳道?
- AI算法不断突破 人工智能驱动创新需找对方向
- CSS 解决td里面内容太多把表格弄变形的原因,设置 自动换行。
- [Swift]UIKit学习之UISegSmentedControl的用法
- programcreek
- mysql proxy性能差_mysql性能的检查和优化方法
- 【好文收藏】k8s中Pod 无法正常解析域名:部署 DNS 调试工具排查
- boost::geometry::comparable_distance用法的测试程序
- 腾讯技术直播间 | 零代码打造智能对话机器人
- 香橼做空跟谁学发第三枪 跟谁学股价盘后下跌1.37%
- 25个恶意JavaScript 库通过NPM官方包仓库分发
- 关于NSStringFromClass的一点见解
- java序列不存在错误_java.sql.SQLException: ORA-02289: 序列不存在 已解决!
- 【Python基础】5-函数编程
- 毫秒级时间戳php,PHP获取毫秒级时间戳的方法
- 极限编程XP 的12个最佳实践
- DX11 游戏开发笔记 (二) DX11 基础框架 上
- 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭
- 第11章 角色页的删除、批量删除
- 微型计算机ccc认证样品测试,CCC认证、检测中国赛西64102188