2

我需要打印在使用 Weka 对我的 Java 应用程序中上传的文件应用过滤方法后生成的 ARFF 文件。

Weka 中是否有任何方法或任何方式将 ARFF 文件打印为二维数组?我需要打印参数名称和值。

4

1 回答 1

4

首先,您需要使用ArffReader. 这是 Weka javadocs 的标准方法:

BufferedReader reader = new BufferedReader(new FileReader("file.arff"));
ArffReader arff = new ArffReader(reader);
Instances data = arff.getData();
data.setClassIndex(data.numAttributes() - 1);

然后,您可以使用Instances上面获得的对象来遍历每个属性及其关联值,并随时打印:

for (int i = 0; i < data.numAttributes(); i++)
{
    // Print the current attribute.
    System.out.print(data.attribute(i).name() + ": ");

    // Print the values associated with the current attribute.
    double[] values = data.attributeToDoubleArray(i);
    System.out.println(Arrays.toString(values));
}

这将导致如下输出:

attribute1: [value1, value2, value3]
attribute2: [value1, value2, value3]
于 2014-02-28T20:23:54.123 回答