Weka算法Classifier-tree-RandomForest分析(一)算法

                             Weka算法Classifier-tree-RandomForest源码分析(一)算法


RandomForest

一、算法介绍

RandomForest应该算是一个特别简单但是有效的算法,其核心思想是通过训练和组合不同的决策树,形成森林,最后的分类结果由这多棵树进行投票来决定。

在介绍RandomForest之前,首先介绍一下Tree Bagging


二、Bagging

Bagging又叫做Booststrap Aggregatiing,也是一种组合多个分类器来得到一个能力更强的分类器的方法,其训练过程分两步:

1、对训练集进行有放回的抽样N次,得到训练集的一个子集作为新训练集,并使用新的训练集训练基分类器。

2、重复上述过程M次,得到M个分类器。

分类过程如下:

对于任意一个新的用例,使用M个分类器进行分类,最后的分类结果由这M个分类器投票决定。

Bagging的显而易见的好处有如下几个:

1、可并行化,多个基分类器之间的训练没有任何相关。

2、防止过拟合,对于某些出现概率小的噪点,抽样过程中抽到的概率较小,训练出的基分类器不受噪点影响。



三、RandomForest

RandomForest在Bagging的基础上又做了改进,过程如下:

训练:

1、对训练集进行有放回的抽样N次,得到训练集的一个子集作为新训练集。

2、在新的训练集中随机抽出训练集的K个属性,训练一棵分类树,并且不对这个分类树做剪枝操作。

3、重复上述过程M次,得到M个分类器。

判定:

1、对于任意一个新的用例,使用M个分类器进行分类,最后的分类结果由这M个分类器投票决定。


可以看出,RandomForest在Bagging的基础上,主要是增加了随机抽出K个属性进行训练,从经验上来讲,假设属性总量为X,则要求K<<X,一般取K=sqrt(X)。

经过这样的改进,RandomForest又有了如下的一些优点:

1、可以处理高纬度的数据,显而易见,每次抽取K个属性进行训练,提高训练速度。

2、可以评估每个属性的重要程度,根据子分类树的精确度,就可以评估属性的重要程度。

3、对于属性的遗失,可以很好的处理,因为各子分类树构建在不同的属性之上,可以只挑选一部分可用的子分类树进行判定




参考资料:

http://baike.baidu.com/view/5021113.htm?fr=aladdin

http://blog.csdn.NET/abcjennifer/article/details/8164315

http://en.wikipedia.org/wiki/Random_forest

http://www.cnblogs.com/wentingtu/archive/2011/12/13/2286212.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值