【发布时间】:2014-07-31 16:07:34
【问题描述】:
我正在使用 Weka 通过 Java API 创建分类器。 这些实例是使用 java 代码创建的。 分类器也是通过以下代码从代码创建的
String args[]=" -x 10 -s 1 -W weka.classifiers.functions.Logistic".split(" ");
String classname;
String[] tmpOptions = Utils.splitOptions(Utils.getOption("W", args));
classname = tmpOptions[0];
System.out.println(classname);
Classifier cls = (Classifier) Utils.forName(Classifier.class, classname, tmpOptions);
它工作正常并且可以进行交叉验证。
之后,我再次加载我的训练实例并将它们的输出标记为? 并将其传递给分类器使用
for (int index = 0; index < postDatas.size(); index++) {
Instance instance = nominal.instance(index);
double label = classifier.classifyInstance(instance);
System.out.println(label);
}
classifier.classifyInstance(instance); 给了我以下异常:
java.lang.NullPointerException
at weka.classifiers.functions.Logistic.distributionForInstance(Logistic.java:710)
我哪里出错了有什么线索吗?
【问题讨论】:
-
这是你的线索:“Logistic.java:710”。那是什么线?
-
它是 weka api 的一部分。我非常感谢您在否决之前理解这个问题。这不是一个 java 问题,更多的是一个 weka 问题。我是一名 Oracle 认证的 java 开发人员,可以自己解决 java 问题。
-
我们无法调试我们看不到的代码。
-
感谢 Takendarkk,它不是 java 问题,而是 weka 问题。
-
如果您将完整的堆栈跟踪添加到您的问题中会有所帮助。