机器学习总结(二)bagging与随机森林
一:Bagging与随机森林
与Boosting族算法不同的是,Bagging和随机森林的个体学习器之间不存在强的依赖关系,可同时生成并行化的方法。
Bagging算法
bagging的算法过程如下:
1:从原始样本集中使用Bootstraping自助采样的方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)
2:对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)
3:对于分类问题:由k个模型的预测结果投票表决产生分类结果;对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型的重要性相同)
从算法的流程可以看出,Bagging生成的每个基学习器的训练样本都会不同,由此基学习器之间具有一定的差异,但是这种差异不会特别大,因为采集的样本是在原样本上有放回的重复采样,采样子集之间有交叠。k轮随机采样,每轮经过n次随机的有放回的抽样,得到k个含有n个样本的采样集。从而可以在k个采样集上训练出k个基学习器,然后再将这些基学习 器进行结合。在对预测输出进行结合时,对分类任务使用简单的投票法,对回归任务采用简单平均法。
Bagging算法有以下优点:
(1)假定一个基学习器的计算复杂度为O(m),Bagging的复杂度为T(O(m)+O(s)),由于采样过程和投票平均过程 的复杂度O(s)很小,T是一个不大的常数,训练一个Bagging与直接使用基学习算法训练一个学习器的复杂度同阶。
(2)与标准的Adaboost算法只能用于二分类任务 不同,Bagging能不经修改的用于 多分类、回归任务。
(3)由于采样过程中每个基学习器会没有使用约有36.8%的样本,所以可以用来作为验证集,对基学习器的样本进行泛化性能包外估计。若基学习器为决策树,包外样本可用于对决策树进行剪枝,若基学习器为神经网络,可用来辅助 早期停止,以减少过拟合的风险。
(4)从偏差方差分解来看,Bagging主要是关注降低方差(在取样过程添加了随机性),在不剪枝的决策树、神经网络等易受样本扰动的学习器比较有效。决策树是一种贪心的算法,样本中噪音过多时,容易过拟合。而神经网络的拟合能力非常强,所以也是一种对样本中的噪音非常敏感的算法,容易过拟合。
随机森林算法
随机森林RF是是Bagging算法的变体。RF的基学习器为决策树,其在构建决策树基学习器的过程,是在Bagging的基础上,进一步引入了 随机属性 选择。具体来说,一般决策 树 是 在当前结点中所有的属性集合中选择最优属性来划分,而 RF对每个基决策树的结点,从结点中随机选择一个包含k个属性的子集,然后再从这些子集中选择一个最优的属性划分。这个K在sklearn里叫做max_feature,是重要的参数。k控制了随机性的引入程度,即会对最终的算法的泛化能力产生影响。
随机森林的优点:
随机森林与Bagging相比,在其样本扰动的基础上,增加了属性扰动,泛化性能通过个体学习器之间的差异 度的增加而进一步提升。
随机森林算法可以对特征的重要性进行选择,如通过包外估计法和基于不纯度减少的方法(哪个特征对不纯度减少的贡献越大,那么哪个特征就越重要)
包外估计法原理:
假设针对某个特征X,我们利用套袋法建立了一颗决策树T,然后用T对袋外数据TOOB进行分类检测,得到其正确分类的个数XT,然后对袋外数据的特征X进行“随机扰乱”,对特征X的取值赋予随机取的新数值,这时再用T对袋外数据TOOB'进行分类检测,得到正确分类数XT',这时对于T来说,特征X的重要性D=|XT' - XT|,我们对随机森林中共N颗决策树做相同操作,可以得到N个特征X的重要性,取其均值作为X的重要性度量,即D(X) = (D1+D2+......+DN)/N,其中Di = |XT'i - XTi|(i=1,2,3,....,N)。
总结
随机森林是一种优秀的算法。由于随机森林和Bagging的方法在每个基学习器的训练过程相对独立,存在一种加法的性质 ,所以这决定了这算法可以进行并行计算,从而加快运行速度。由于其加入了数据样本扰动和输入属性扰动,所以会具有更好的泛化性能。
机器学习总结(二)bagging与随机森林的更多相关文章
- 机器学习回顾篇(12):集成学习之Bagging与随机森林
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 机器学习 —— 决策树及其集成算法(Bagging、随机森林、Boosting)
本文为senlie原创,转载请保留此地址:http://www.cnblogs.com/senlie/ 决策树--------------------------------------------- ...
- Bagging之随机森林
随机森林(Random Forest)是一种Bagging(Bootstrap Aggregating)集成算法,在样本随机(样本扰动)的基础上,进一步运用特征随机(属性扰动)的机制,得到比一般的Ba ...
- SIGAI机器学习第十九集 随机森林
讲授集成学习的概念,Bootstrap抽样,Bagging算法,随机森林的原理,训练算法,包外误差,计算变量的重要性,实际应用 大纲: 集成学习简介 Boostrap抽样 Bagging算法 随机森林 ...
- R语言︱机器学习模型评估方案(以随机森林算法为例)
笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评 ...
- Bagging与随机森林算法原理小结
在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...
- Bagging与随机森林(RF)算法原理总结
Bagging与随机森林算法原理总结 在集成学习原理小结中,我们学习到了两个流派,一个是Boosting,它的特点是各个弱学习器之间存在依赖和关系,另一个是Bagging,它的特点是各个弱学习器之间没 ...
- 机器学习相关知识整理系列之二:Bagging及随机森林
1. Bagging的策略 从样本集中重采样(有放回)选出\(n\)个样本,定义子样本集为\(D\): 基于子样本集\(D\),所有属性上建立分类器,(ID3,C4.5,CART,SVM等): 重复以 ...
- 机器学习之Bagging与随机森林笔记
集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能.这对“弱学习器”尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的,而基学习器有时也被直接称为弱学习器.虽然从理论上来 ...
随机推荐
- python转换图片格式
在图片所在的路径下,打开命令窗口 bmeps -c picturename.png picturename.eps
- 1.Qt字符编码
1.给空间设置内容,有显示中文的,必须是utf-8编码: 2.从Qt得到的字符串,如果有中文,编码是utf-8,和Linux是一样的: 3.如果使用标准的C函数,如果有中文,是gbk编码: ANSI, ...
- .NET使用gRPC
gRPC 简单介绍: grpc 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计.目前提供 C.Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc ...
- 聚合函数对NULL统计
Table ID Amount Number 1 28.26 NULL 2 NULL NULL 3 NULL NULL SQL SELECT SUM(Amount),SUM(Number),COUNT ...
- Golang 之协程详解
转自:https://www.cnblogs.com/liang1101/p/7285955.html 一.Golang 线程和协程的区别 备注:需要区分进程.线程(内核级线程).协程(用户级线程)三 ...
- 【LeetCode每天一题】Set Matrix Zeroes(设置0矩阵)
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place. Exampl ...
- 68.jq---tab选项实现网页定点切换
{volist name="list" id="vo"}<div class="nav_div" style="positi ...
- 一个简单小技巧实现手机访问.html文件网页效果
注册登录Github不解释 settings设置往下拉 选择一个主题上传代码文件到code 打开这个文件选择此时的网址 在网址前面加上 这段代码 http://htmlpreview.github.i ...
- 洛谷P2611 信息传递
并查集裸题,记录每个点的胜读,取个min就好了 #include<stdio.h> #include<string.h> #include<algorithm> u ...
- Centos7 安装redis
1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.检查及下载gcc gcc -v yum -y inst ...