【问题标题】:cannot run java program that executes weka commands无法运行执行 weka 命令的 java 程序
【发布时间】:2015-03-26 19:36:15
【问题描述】:

我正在尝试运行一个执行 Weka 命令的 Java 程序。 我正在运行的程序位于 http://weka.wikispaces.com/Use+WEKA+in+your+Java+code,在 Incremental Classifiers 下,“一个工作示例是 IncrementalClassifier.java。”

这是我的代码,我改了arff的地址:

import weka.core.Instance;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
import weka.classifiers.bayes.NaiveBayesUpdateable;

import java.io.File;

/**
 * This example trains NaiveBayes incrementally on data obtained
 * from the ArffLoader.
 *
 * @author FracPete (fracpete at waikato dot ac dot nz)
 */
public class IncrementalClassifier {

  /**
   * Expects an ARFF file as first argument (class attribute is assumed
   * to be the last attribute).
   *
   * @param args        the commandline arguments
   * @throws Exception  if something goes wrong
   */
  public static void main(String[] args) throws Exception {
    // load data
    ArffLoader loader = new ArffLoader();
    loader.setFile(new File("C:\\Program Files\\Weka-3-6\\10random+5.arff"));
    Instances structure = loader.getStructure();
    structure.setClassIndex(structure.numAttributes() - 1);

    // train NaiveBayes
    NaiveBayesUpdateable nb = new NaiveBayesUpdateable();
    nb.buildClassifier(structure);
    Instance current;
    while ((current = loader.getNextInstance(structure)) != null)
      nb.updateClassifier(current);

    // output generated model
    System.out.println(nb);
  }
}

我得到的错误是:

java.io.FileNotFoundException: \iris.2.arff (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileReader.<init>(Unknown Source)
    at weka.classifiers.bayes.net.ADNode.main(ADNode.java:270)

如何进行?

谢谢

【问题讨论】:

    标签: java weka


    【解决方案1】:

    该文件 (iris.2.arff) 似乎已硬编码到源代码中,如 here 所示。我猜这个文件是随发行版一起提供的,但不在正确的位置。或者您可能调用了错误的方法。

    【讨论】:

    • 感谢您的回复。我不知道如何根据您的反馈采取行动。
    • 首先,更新您的帖子以包含整个堆栈跟踪,并指出在您的源代码中的哪一行引发了异常。
    • 我得到的错误是: 1.Project 'CN170' is missing required library: 'C:\Program Files\Weka-3-4\weka.jar' (资源:CN170,位置:构建路径),2. 在解决构建路径错误之前无法构建项目(资源:CN170,位置:未知),3. 未处理的异常类型 IOException(资源:simpleprog.java,位置:line18)。
    • 这与原始错误有很大不同,表明 weka.jar 不在您的类路径中。
    【解决方案2】:

    这是因为您在 java 应用程序配置中运行了错误的类,您需要做的是:

    右键单击项目:运行方式:运行配置:在“主类”字段中选择您的类“IncrementalClassifier”

    就是这样,祝你好运!

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多