【问题标题】:LibSVM.classifyInstance(Instance instance) throw java.lang.NullPointerExceptionLibSVM.classifyInstance(Instance instance) 抛出 java.lang.NullPointerException
【发布时间】:2016-05-31 00:09:41
【问题描述】:

我使用的是 Maven LibSVM 版本 1.0.6 (link)

如果我在创建模型之前设置了 setProbabilityEstimates(true),我会在尝试对新实例进行分类时得到 NullPointerException。

我的代码:

LibSVM svm;
svm = new LibSVM();
svm.setProbabilityEstimates(true);
try {
    svm.buildClassifier(training);
} catch (Exception e) {
    e.printStackTrace();
}

svm.classifyInstance(newInstance);

异常堆栈跟踪:

在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 在 weka.classifiers.functions.LibSVM.invokeMethod(LibSVM.java:1339) 在 weka.classifiers.functions.LibSVM.distributionForInstance(LibSVM.java:1497) 在 bgu.ml.Main.main(Main.java:36) 引起: java.lang.ArrayIndexOutOfBoundsException: 1 在 libsvm.svm.svm_get_labels(svm.java:2296) ... 还有 9 个

谢谢

【问题讨论】:

    标签: java maven nullpointerexception weka libsvm


    【解决方案1】:

    出现问题是因为训练集和测试集的标头不同。 更深入地讲,train 有 true 和 false 类的实例,而 test 只有 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-12
      • 2019-07-18
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多