【发布时间】:2015-03-15 02:57:55
【问题描述】:
我正在编写此代码以使用 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 步。那么,为什么会出现这个异常呢?
【问题讨论】:
-
在下面回答了我自己的问题。
标签: java machine-learning weka svm