我正在尝试在Weka中训练MultiClassClassifier
模型,并将基本算法设置为weka.classifiers.functions.supportVector.RegSMOImproved
类,并使用以下选项:
MultiClassClassifier cModel = new MultiClassClassifier();
String options[] = {
"weka.classifiers.meta.MultiClassClassifier",
"-M","0",
"-R","2.0",
"-S","1",
"-W","weka.classifiers.functions.supportVector.RegSMOImproved",
"-P","1.0e-12",
"-L","1.0e-3",
"-W","1"
};
try {
cModel.setOptions(options);
} catch (Exception e) {
e.printStackTrace();
}
当我运行我的代码时,我收到以下错误:
java.lang.Exception: Can't find class called: weka.classifiers.functions.supportVector.RegSMOImproved
at weka.core.Utils.forName(Utils.java:1073)
at weka.classifiers.AbstractClassifier.forName(AbstractClassifier.java:90)
at weka.classifiers.SingleClassifierEnhancer.setOptions(SingleClassifierEnhancer.java:108)
at weka.classifiers.RandomizableSingleClassifierEnhancer.setOptions(RandomizableSingleClassifierEnhancer.java:93)
at weka.classifiers.meta.MultiClassClassifier.setOptions(MultiClassClassifier.java:802)
at myApp.Main.trainMultiClassClassifier(Main.java:983)
at myApp.Main.createSets(Main.java:903)
at myApp.Main.main(Main.java:387)
使用RegSMOImproved算法的正确类路径是什么 weka.classifiers.functions.supportVector.RegSMOImproved
?
我在这里错过了其他的东西,或许是一个额外的设置,还是某种父类?
我正在使用来自here的Weka开发者分支。如果有任何我无意中遗漏的请告诉我,我会尽快编辑。
提前谢谢你。
编辑1:
我正在努力完成多级分类,我将我的模型/模型作为一个类别与其他类别进行训练。我的数据是平衡的(每班100个样本)。这是我到目前为止所发现的:
http://weka.8497.n7.nabble.com/meta-multi-class-classifier-with-the-option-smo-td26548.html
编辑2:
所以我把选项对象改为:
String options[] = {
"-M","0",
"-R","2.0",
"-S","1",
"-W","weka.classifiers.functions.SMO",
"--",
"-C","1",
"-L","0.001",
"-P","1.0e-12",
"-M",
"-N", "0",
"-V","-1",
"-W","1",
"-K", "weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0"
};
这似乎经历了setOptions()
,因此我明确地混合了supportVector
和functions
包中的两个SMO类。我还读过,我需要为SMO设置-M
和-V
属性,以便我的MultiClassClassifier正常工作。所以我用-M属性打开了“将校准模型拟合到SVM输出”,并使用-V属性将交叉验证的折叠数设置为-1(默认值)。
我假设必须设置交叉验证的折叠数属性以用于测试目的。从这一点开始,我们必须查看交叉验证的帖子。
再次感谢你!
答案 0 :(得分:0)
A)除非您有特殊需要,否则您可能不应该使用开发人员分支。对于我们所知道的一切,他们正在移动的东西和它可能被打破
B)RegSMOImproved用于 Reg ression,而不是分类。因此,您的一些问题可能是MultiClassClassifier和回归算法之间的错过匹配。