Weka 3.7 中 RandomForest 的精确实现
Posted
技术标签:
【中文标题】Weka 3.7 中 RandomForest 的精确实现【英文标题】:Exact implementation of RandomForest in Weka 3.7 【发布时间】:2013-10-08 20:32:27 【问题描述】:在查看了 Breiman (2001) 的原始论文以及其他一些董事会帖子后,我对 WEKA 随机森林实施所使用的实际程序有些困惑。没有一个来源足够详细,许多甚至相互矛盾。
具体是如何工作的,进行了哪些步骤?
我目前的理解:
为每棵树创建一个与训练数据大小相同的引导样本 每个节点只考虑定义大小的可用特征的随机子集(参数可以在 WEKA 中选择) 关于使用的基树学习器,我发现 2006 年的一篇帖子说它是一个修改后的 REPTree。 树已完全长大,未修剪。 应用多数票(以准确性作为性能指标)我的问题:
是否实际使用了引导采样? REPTree 是否仍在使用中,或者从那时起算法是否已更改?澄清这些问题对我有很大帮助!
【问题讨论】:
【参考方案1】:回答你的问题
确实使用了 Bagging(引导聚合)。您可以在529@
行的代码中查看似乎使用了RandomTree,如530线上所见
此信息来自Weka 3.7.5,我相信一直到3.6.8版本都是正确的,但我没有检查源代码。
【讨论】:
非常感谢,第一个问题解决了。它确实使用了 RandomTree,但剩下的问题是基于哪个 RT - CART 或 REPTree 大概但不确定。 我不确定您是否熟悉 Java,但您可以比较两个 buildTree() 方法:RandomTree、RepTree。在我看来,它们看起来非常相似,但我找不到最近的消息来源说它们是相同的。 谢谢 我去看看。据说它是 REPTree 的略微修改版本。虽然我会在家里检查一下,但在手机屏幕上看不到任何东西。谢谢 @Walter "是的,WEKA 的 RandomForest 确实不是基于 CART,但它也不是基于 J48,而是 REPTree 的一种变体,被修改为包含所需的随机性,而不是修剪" weka.8497.n7.nabble.com/…以上是关于Weka 3.7 中 RandomForest 的精确实现的主要内容,如果未能解决你的问题,请参考以下文章