随机森林 RF 算法的原理(一)

随机森林是一种基于Bagging的集成学习方法,由多个决策树组成,用于分类和回归问题。它通过Bootstrap重采样生成训练集,建立多棵决策树,并通过投票决定最终结果。集成学习包括并行的Bagging(如随机森林)和串行的Boosting(如AdaBoost, GBDT)。决策树算法通过属性测试进行数据划分,信息增益、增益率和基尼指数常用于选择最优划分标准。CART算法是既能处理分类又能处理回归的决策树算法,使用基尼指数作为划分标准。" 124422365,13436818,TCP与UDP详解:三次握手与四次挥手,"['网络', 'TCP/IP', '协议']
摘要由CSDN通过智能技术生成

随机森林算法是一种重要的基于 Bagging 集成学习方法,可用来做分类、回归等问题。随机森林算法是由一系列的决策树组成,他通过自助法(Bootstrap)重采样技术,从原始训练样本集中有放回的重复随机抽取 m 个样本,生成新的训练样本集合,然后根据自主样本集生成 k 个分类树组成随机森林,新数据的分类结果按分类树投票多少形成的分数定。其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于一个独立抽取得样本,森林中的每棵树具有相同的分布,分类误差取决于每一棵树的分类能力和它们之间的相关性。

要了解随机森林,先要了解集成学习和决策树。

一、集成学习

处理前面复杂的分类问题,我们试图寻找一个高效的算法处理,但通常会花费很多资源。集成学习是训练多个分类器,利用这些分类器来解决同一个问题。相当与“三个臭皮匠赛过一个诸葛亮”(哈哈哈,我看到这的时候憋不住了,哈哈哈哈)。

集成学习:通过构建并结合多个学习器来完成学习任务,有时称为多分类器系统,其结构如下图所示。

先产生一组个体学习器,在利用某种策略将其结合起来,个体学习器通常由一个现有的学习算法从训练数据产生,例如C4.5决策树算法、BP神经网络算法等。这些集成中只包含同种类型的个体学习器,即同质,同质集成中的个体学习器亦称基学习器,相应的学习算法称为基学习算法。集成中也可以包含不同类型的个体学习器,这时相应的学习算法不再是基学习算法。要获得好的集成,个体学习器至少不差于弱学习器(指泛化性能略优于随机猜测的学习器),即学习器不能太坏、要有多样性、学习器之间具有差距。在集成学习方法中,其泛化能力比单个学习算法的强,所以集成学习的很多理论研究都是针对弱学习器进行的。根据多个分类器学习方式的不同,可以分成并行生成的 Bagging 算法和串行生成的 Boosting 算法。

集成学习有如下的特点: 
(1)将多个分类方法聚集在一起,以提高分类的准确率,聚集的算法可以是不同,也可以相同;
(2)集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器的预测进行投票来进行分类; 
(3)集成学习不算一种分类器,而是一种分类器结合的方法; 
(4)通常一个集成分类器的分类性能会好于单个分类器; 
(5)如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。

Bagging 算法:它的特点是各个弱学习器之间没有依赖关系,可以并行拟合,随机森林算法就基于 Bagging 算法。该算法是通过对训练样本随机有放回的抽取,产生多个训练数据的子集,并在每一个训练记得子集上训练一个分类器,最终的分类结果是由多个分类器的分类结果投票产生。训练一个Bagging 集成与直接使用基学习算法训练一个学习器的复杂度同阶,这说明Bagging 是一个很高效的集成学习算法。Bagging算法主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效果更为明显。

为什么要有放回的抽取?

为获得好的集成,我们希望个体学习器不能太差,如果采样出的每个子集都完全不同,则每个基学习器只能用到一小部分训练数据,甚至不足以进行有效学习,无法确保产生出比较好的基学习器,为解决这个问题使用相互有交叠的采样子集。

所以通过m次有放回的随机采样操作,如我们得到含m个样本的采样集,初始训练集中有的样本在采样集多次出现,下有的则从未出现,初始训练集中约有63.2%的样本出现在采样集中。然后基于每个采样集训练出一个基学习器,所再将这些基学习器结合,这就是Bagging 的基本流程,图下图所示。

Boosting 算法:是一族可将弱学习器提升为强学习器的算法。它是通过顺序的给训练集中的数据项重新加权创造不同的基础学习器,先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多的关注,然后基于调整后的样本分布来训练下一个基学习器。根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。Boosting 算法有很多版本,目前使用最广泛的是 AdaBoost  算法和 GBDT 算法。Boosting 算法主要关注

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值