当我在RandomTree配置中观察到minNum字段时,我正在玩weka。我阅读了描述“叶子中实例的最小总重量”。 但是,我真的不明白这意味着什么。
我玩了那个号码,我意识到当我增加它时,由此产生的树的大小减少了。我无法确定为什么会发生这种情况。
任何帮助/参考将不胜感激。
答案 0 :(得分:2)
这与叶子节点上的最小实例数有关(在决策树中,默认情况下通常为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中一样),所以你最终可能会得到非常嘈杂的树木。