装袋法(bagging)和随机森林(random forests)的区别

来源:互联网 发布:ubuntu怎么看软件位置 编辑:程序博客网 时间:2024/04/29 14:46

       bagging method 和random forests 一般都是应用在决策树中。这篇文章只讨论bagging method 和random forests 的区别。

   bagging method 的思想: 假设一个数据集L,通过Boostrap(自助抽样)有放回的抽样n次,那么产生了n个样本数据集,记为n个train集。

第一步:我们将这n个train集进行训练,因此产生了n个基分类器,也可以说是n个决策树

第二步:利用这n个基分类器对测试集进行预测,因此会得到n个结果。

第三步:采取多数投票(majorty vote):将n个预测的结果出现频率最高的类作为总体预测。

  仔细思考下会出现一些新的问题,如果一个数据集有一个很强的预测变量和一些中等强度的预测变量,那么可以想到,大多数(甚至所有)的树都会将最强的预测变量用于顶部分裂点,这会造成所有的装袋法树看起来都很相似。与不相关的量求平均相比,对许多高度相关的量求平均带来的方差减小程度是无法与前者相提并论的。在这种情况下,装袋法与单棵树相比不会带来方差的重大降低。这个问题是装袋法一个很致命的问题。那么下面我们来看看random forests method. 

  random forests 我们称为随机森林,其实随机森林是对装袋法的一种改进,随机森林也需要对自助抽样训练集建立一系列的决策树,这和决策树类似。不过,随机森林在建立树的时候,不和装袋法一样,装袋法建树的时候是将所有预测变量都考虑进去,而随机森林则是考虑每一个分裂点时,都是从所有的预测变量p中随机选取m个预测变量,分裂点所用的预测变量只能从这m个变量中选择。在每个分裂点处都重新进行抽样,选出m个预测变量,通常m≈√p,对每一个分裂点来说,这个算法将大部分可用预测变量排除在外,虽然听起来crazy,但是这个原理是很巧妙的。

   其实当随机森林中的m=p时,随机森林和装袋法是一样的。随机森林考虑每个分裂点的子集相对来说比装袋法少很多。这样得到的树的平均值有更小的方差,因而树的可信度相对来说比较高。

0 0