当我观察到 RandomTree 配置中的 minNum 字段时,我正在玩 weka。我阅读了描述“叶子中实例的最小总重量”的描述。 然而,我并不能真正理解它的意思。
我试过这个数字,我意识到当我增加它时,由此生成的树的大小会减小。我无法理解为什么会这样。
任何帮助/引用将不胜感激。
最佳答案
这与叶节点上的最小实例数有关(在决策树中通常默认为 2,如 J48)。您将此参数设置得越高,树的通用性就越高,因为具有许多实例数量较少的叶子会产生过于细化的树结构。
下面是 iris
数据集的两个示例,显示了 -M
选项如何影响结果树的大小:
$ weka weka.classifiers.trees.RandomTree -t iris.arff -i
petallength < 2.45 : Iris-setosa (50/0)
petallength >= 2.45
| petalwidth < 1.75
| | petallength < 4.95
| | | petalwidth < 1.65 : Iris-versicolor (47/0)
| | | petalwidth >= 1.65 : Iris-virginica (1/0)
| | petallength >= 4.95
| | | petalwidth < 1.55 : Iris-virginica (3/0)
| | | petalwidth >= 1.55
| | | | sepallength < 6.95 : Iris-versicolor (2/0)
| | | | sepallength >= 6.95 : Iris-virginica (1/0)
| petalwidth >= 1.75
| | petallength < 4.85
| | | sepallength < 5.95 : Iris-versicolor (1/0)
| | | sepallength >= 5.95 : Iris-virginica (2/0)
| | petallength >= 4.85 : Iris-virginica (43/0)
Size of the tree : 17
$ weka weka.classifiers.trees.RandomTree -M 6 -t iris.arff -i
petallength < 2.45 : Iris-setosa (50/0)
petallength >= 2.45
| petalwidth < 1.75
| | petallength < 4.95
| | | petalwidth < 1.65 : Iris-versicolor (47/0)
| | | petalwidth >= 1.65 : Iris-virginica (1/0)
| | petallength >= 4.95 : Iris-virginica (6/2)
| petalwidth >= 1.75
| | petallength < 4.85 : Iris-virginica (3/1)
| | petallength >= 4.85 : Iris-virginica (43/0)
Size of the tree : 11
作为旁注,随机树依赖于装袋,这意味着存在属性的二次抽样(随机选择 K 以在每个节点处进行拆分);然而,与 REPTree 相反,它没有修剪(就像在 RandomForest 中一样),因此您最终可能会得到非常嘈杂的树。
关于weka - 关于Weka中的RandomTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845812/