WEKA - Multi Class Classification - 找不到 class 调用:weka.classifiers.functions.supportVector.RegSMOImproved
WEKA - Multi Class Classification - Can't find class called: weka.classifiers.functions.supportVector.RegSMOImproved
我正在尝试在 Weka 中训练一个 MultiClassClassifier
模型,其基本算法设置为 weka.classifiers.functions.supportVector.RegSMOImproved
class,具有以下选项:
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)
如果不是weka.classifiers.functions.supportVector.RegSMOImproved
?
我是不是漏掉了其他东西,也许是额外的设置,或者某种父 class?
我正在使用 here 的 Weka developer-branch。如果有任何我无意中遗漏的内容,请告诉我,我会尽快进行编辑。
提前谢谢你。
编辑 1:
我正在尝试完成多 class class化,我将 model/models 作为一个 class 与其他人进行训练。我的数据是平衡的(每个 class 有 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 classes。我还读到我需要为 SMO 设置 -M
和 -V
属性,以便我的 MultiClassClassifier 正常工作。因此,我使用 -M 属性 打开 "fitting calibration models to SVM outputs",并使用 -V 属性 将交叉验证的折叠数设置为 -1(默认值)。
我假设出于测试目的必须设置交叉验证的折叠数 属性。从这一点开始将不得不查看关于交叉验证的帖子。
再次感谢您!
A) 除非您有特殊需要,否则您可能不应该使用开发人员分支。据我们所知,他们正在四处移动东西,而且它可能会坏掉
B) RegSMOImproved 用于 Regression ,而不是分类。所以你的一些问题可能是 MultiClassClassifier 和回归算法之间的不匹配。
我正在尝试在 Weka 中训练一个 MultiClassClassifier
模型,其基本算法设置为 weka.classifiers.functions.supportVector.RegSMOImproved
class,具有以下选项:
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)
如果不是weka.classifiers.functions.supportVector.RegSMOImproved
?
我是不是漏掉了其他东西,也许是额外的设置,或者某种父 class?
我正在使用 here 的 Weka developer-branch。如果有任何我无意中遗漏的内容,请告诉我,我会尽快进行编辑。
提前谢谢你。
编辑 1:
我正在尝试完成多 class class化,我将 model/models 作为一个 class 与其他人进行训练。我的数据是平衡的(每个 class 有 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 classes。我还读到我需要为 SMO 设置 -M
和 -V
属性,以便我的 MultiClassClassifier 正常工作。因此,我使用 -M 属性 打开 "fitting calibration models to SVM outputs",并使用 -V 属性 将交叉验证的折叠数设置为 -1(默认值)。
我假设出于测试目的必须设置交叉验证的折叠数 属性。从这一点开始将不得不查看关于交叉验证的帖子。
再次感谢您!
A) 除非您有特殊需要,否则您可能不应该使用开发人员分支。据我们所知,他们正在四处移动东西,而且它可能会坏掉
B) RegSMOImproved 用于 Regression ,而不是分类。所以你的一些问题可能是 MultiClassClassifier 和回归算法之间的不匹配。