-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
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