在Weka 3.7中RandomForest的具体实现

在审阅了Breiman(2001)的原始论文以及其他一些论坛帖子后,我对Weka的随机森林实现所使用的实际程序感到有些困惑。没有一个来源足够详细,许多甚至相互矛盾。

它具体是如何工作的,执行了哪些步骤?

我目前的理解是:

  • 为每棵树创建一个与训练数据大小相同的自助样本
  • 每个节点只考虑可用特征的一个随机子集,其大小可以选择(在Weka中可以选择参数)
  • 关于使用的基础树学习器,我发现2006年的一篇帖子提到它是一个修改后的REPTree。
  • 树完全生长且不进行修剪。
  • 应用多数投票(在以准确率作为性能指标的情况下)

我的问题是:

  • 是否实际使用了自助抽样?
  • REPTree是否仍在使用,或者自那时起算法是否已更改?

澄清这些问题对我帮助很大!


回答:

回答你的问题

  1. 确实使用了Bagging(自助聚合)。你可以在代码的第529行看到这一点

  2. 似乎使用了RandomTree,如第530行所示

这些信息来自Weka 3.7.5,我认为从版本3.6.8开始都是正确的,但我没有检查源代码。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注