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 的精确实现的主要内容,如果未能解决你的问题,请参考以下文章

使用 R 对 randomForest 执行交叉验证

weka 3.7 explorer 无法对文本进行分类

随机森林分类 weka

C4.5,CART,randomforest的实践

在 weka 中自动对 arff 文件运行多个分类器

Weka RF 没有给出任何混淆矩阵或预期结果