将ARFF文件打印为二维数组

时间:2014-02-28 19:37:52

标签: java weka arff

我需要打印一个ARFF文件,该文件是在使用Weka将过滤器方法应用到我的Java应用程序中的上传文件后生成的。

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

1 个答案:

答案 0 :(得分: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]