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(),所以我显然混合了来自 supportVectorfunctions 包的两个 SMO classes。我还读到我需要为 SMO 设置 -M-V 属性,以便我的 MultiClassClassifier 正常工作。因此,我使用 -M 属性 打开 "fitting calibration models to SVM outputs",并使用 -V 属性 将交叉验证的折叠数设置为 -1(默认值)。

我假设出于测试目的必须设置交叉验证的折叠数 属性。从这一点开始将不得不查看关于交叉验证的帖子。

再次感谢您!

A) 除非您有特殊需要,否则您可能不应该使用开发人员分支。据我们所知,他们正在四处移动东西,而且它可能会坏掉

B) RegSMOImproved 用于 Regression ,而不是分类。所以你的一些问题可能是 MultiClassClassifier 和回归算法之间的不匹配。