[英]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.