繁体   English   中英

使用Weka运行LibSVM时,此异常是什么意思?

[英]What does this exception mean when running LibSVM using Weka?

我正在编写此代码,以使用Weka使用LibSVM进行5倍交叉验证。

    LibSVM svm = new LibSVM();
    svm.setKernelType(new SelectedTag(2, LibSVM.TAGS_KERNELTYPE));
    svm.setDegree(2);
    //Run a cross validation to select the right parameters
    CVParameterSelection ps = new CVParameterSelection();
    ps.setClassifier(svm);
    ps.setNumFolds(5);  // using 5-fold CV
    ps.addCVParameter("G 1 10 .1");

    // build and output best options
    //I get exception below ->>>>>>>>>>>>>>
    ps.buildClassifier(isTrainingSet);
    System.out.println(Utils.joinOptions(ps.getBestClassifierOptions()));

但这引发了异常

Exception in thread "main" java.lang.Exception: Error: gamma < 0
at weka.classifiers.functions.LibSVM.buildClassifier(LibSVM.java:1690)
at weka.classifiers.meta.CVParameterSelection.findParamsByCrossValidation(CVParameterSelection.java:377)
at weka.classifiers.meta.CVParameterSelection.findParamsByCrossValidation(CVParameterSelection.java:354)
at weka.classifiers.meta.CVParameterSelection.buildClassifier(CVParameterSelection.java:628)
at ExtractTopics.main(ExtractTopics.java:164)

我认为参数gamme永远不会小于零,对吗? 初始值为1,最终值为10,分为10步。 那么,为什么会出现这种异常呢?

在下面回答我自己的问题。

这三个值中的最后一个参数不是要采取的步长大小。 它是要执行的步骤数。 因此,在上面说我要执行0.1个步骤是不正确的。 它应该是100步,以便Weka可以推断它内部需要采用0.1步大小。

使用[1 10 100]有帮助,并且运行良好。

我找到的答案在这里-http: //weka.8497.n7.nabble.com/Problem-evaluating-classifier-C-lt-0-error-td31971.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM