-M 选项的 Weka RandomForest setter

Weka RandomForest setter for -M option

Weka RandomForestclass提供了各种setter,比如setNumIterations()setNumFeatures()setMaxDepth()等,是否还有[=26] =] 设置随机森林的每个叶选项的最小实例数?

我目前正在使用 -M 通过 setOptions() 间接设置它,但这会触发“找不到允许的 class”错误(请参阅 Weka - Can't find a permissible class)当 运行 来自命令行的程序 java -jar target/MyApp.jar。但是,运行 在 Apache Netbeans IDE 中确实可以正常工作,所以也许一些 classpath/Maven 更改也可能有帮助?

weka.classifiers.trees.RandomForest 派生自 weka.classifiers.meta.Bagging,可通过 getClassifier() 方法访问基分类器。 RandomForest 使用 weka.classifiers.trees.RandomTree 作为基础分类器,它具有您提到的 -M 选项。

所以你可能会做这样的事情来改变每片叶子的最小实例数:

import weka.classifiers.trees.RandomForest;
import weka.classifiers.trees.RandomTree;
import weka.core.Utils;

RandomForest rf = new RandomForest();
RandomTree rt = (RandomTree) rf.getClassifier();
rt.setMinNum(5);
System.out.println(Utils.toCommandLine(rf));

这将输出如下内容:

weka.classifiers.trees.RandomForest -P 100 -I 100 -num-slots 1 -K 0 -M 5.0 -V 0.001 -S 1