Java 用于-M选项的Weka随机森林设定器

Java 用于-M选项的Weka随机森林设定器,java,classpath,weka,Java,Classpath,Weka,Weka RandomForest类提供了各种设置器,如setNumFeatures(),setNumFeatures(),setMaxDepth(),等等。是否还有一个设置器来设置RandomForest的每个叶选项的最小实例数 我目前正在使用-M通过setOptions()间接设置它,但是当从命令行java-jar target/MyApp.jar运行程序时,这会触发“找不到允许的类”错误(请参阅)。但是,在Apache Netbeans IDE中从它运行不会出现任何错误,因此可能一些cla

Weka RandomForest类提供了各种设置器,如
setNumFeatures()
setNumFeatures()
setMaxDepth()
,等等。是否还有一个设置器来设置RandomForest的每个叶选项的最小实例数


我目前正在使用
-M
通过
setOptions()
间接设置它,但是当从命令行
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
选项

因此,您可能可以这样做来更改每个叶的最小实例数:

导入weka.classifiers.trees.random森林;
导入weka.classifiers.trees.RandomTree;
导入weka.core.Utils;
RandomForest rf=新的RandomForest();
RandomTree rt=(RandomTree)rf.getClassifier();
刚毛沙鼠(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

您需要将提供的字符串数组发布到
setOptions(String[])
方法,以确定任何潜在的错误。@fractpete setOptions只起作用(在IDE内部)。我的问题是避免使用它,或者修复Java反射错误。