随机森林算法知识点梳理

随机森林算法知识点梳理

阅读目录
1 随机森林的相关基础知识
2 随机森林的生成
3 随机森林的特点

1 随机森林相关基础知识

随机森林是机器学习中十分重要的算法之一,它简单、容易实现、计算开销小,在很多现实任务中展现去强大的性能。为了更好的理解其工作原理等,需要了解一些机器学习方面的基础知识,主要涉及以下几个部分:

1)自助法

自助法(bootstrapping)是通过对一个包含m个样例的数据集D进行适当的处理,从中产生出合适的训练集S和验证集T。具体做法如下:每次随机从D中挑选一个样本,将其拷贝放入训练集S中,然后再将该样本放回D中,使得该样本在下次采样中仍有被采到的可能;此操作重复m次,这样我们就得到一个包含m个样本的训练集S。显然,D中的样本有一些在S中会重复出现,有的则可能从未出现过,通过计算可知,D中大约有36.8%的样本未出现在S中,于是我们将S作为训练集,而没有出现过的样本可以作为测试集,对随机森林的泛化误差做一个无偏估计。

2)决策树

一般而言,一颗决策树包含一个根节点、若干个内部节点和若干个叶子节点,叶子节点对应于决策结果,其他节点则对应于一个属性测试,如何选择最优划分属性,是决策树学习的关键所在。以著名的ID3决策树学习算法为例简单介绍下其划分属性的准则。假设属性a有V个可能的取值{a1,a2,…aV},若使用属性a对样本集D进行划分,则会产生V个分支节点,其中第v个分支节点包含了D中在属性a上取值为av的样本,记为Dv,由此可通过公式计算出用属性a对D进行划分所获得的“信息增益”。以此类推,计算其他属性带来的“信息增益”,从中取最大值,那么该最大值对应的属性就是最优划分属性。

3)集成学习

集成学习(ensemble learning)通过构建并结合多个个体学习器完成学习任务,上面提到的决策树就当于一个个体学习器,集成学习常可获得比单一学习器显著优越的泛化性能。根据个体学习器的生成方式,目前继承学习型方法大致可分为两类,一种为个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表有Boosting;另一种是个体学习器间不存在强依赖关系,可以同时生成的并行化方法,代表有随机森林。

2 随机森林的生成

随机森林就是通过集成学习的思想将许多颗决策树集成的一种算法,它的个体学习器就是一颗颗决策树,那么这每一颗决策树都是一个分类器(假设针对分类问题),对于一个输入样本,N颗决策树就会产生N个结果,而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出。
随机森林的生成主要涉及两个关键点:一是“随机”;二是“森林”。“森林”即是由一颗颗决策树组成的,而“随机”则包含了“数据随机”和“属性随机”两个部分,具体来说其生成规则如下:

  • 如果存在一个包含m个样例的数据集D,对于每棵树均采用上面提到的自助法,那么每棵树都可以得到一个包含m个样本的训练集S,这种抽样方法使得每棵树的训练集不至于毫无关系或者完全重复,很好的保证了每颗决策树的训练集中样本的随机性。
  • 传统的决策树在进行最优划分属性时都是从当前节点的属性集合中根据一定的规则选取一个,而在随机森林中,对于每棵树的每个节点,先从已有的属性集合(假设有A个属性)中随机的抽取a(a<<A)个属性组成一个子集,然后再从该子集中选择最优划分属性。这样就保证了”属性随机“。
  • 在决策树分裂过程中不需要剪枝。
  • 将生成的多棵决策树组成随机森林。对于分类问题,按多棵树分类器投票决定最终分类结果;对于回归问题,由多棵树预测值的均值决定最终预测结果。

3 随机森林的特点

要想使得集成学习获得非常好的泛化性能,就需要个体学习器“好而不同”,即个体学习器不能太坏,要具有一定的准确性;并且要具有多样性,个体学习器之间应具有差异。随机森林由于其每颗决策树所具有的“数据随机”和“属性随机”,很好的体现了个体学习器之间的“好而不同”,因而具有以下优点:

  • 具有极好的准确率
  • 两个随机性的引入,使得其不容易陷入过拟合,并且具有很好得抗噪能力
  • 在生成过程中,能够获取到内部生成误差的一种无偏估计
  • 能够处理具有高维特征的输入样本,而且不需要降维
  • 既能处理离散型数据,也能处理连续型数据,数据集无需规范化
    当然,随机森林也有如下缺点:
  • 当随机森林中的决策树个数很多时,训练时需要的空间和时间会较大
  • 随机森林模型还有许多不好解释的地方

参考内容

【1】随机森林算法及其实现(Random Forest)
https://blog.csdn.net/yangyin007/article/details/82385967
【2】机器学习–随机森林 (Random Forest)https://blog.csdn.net/proplume/article/details/78981551

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值