加载 ARFF 文件

根据所使用的 Weka 的版本,应该使用不同的加载 ARFF 文件的方法。

Weka <3.5.5

以下示例代码显示如何加载 ARFF 文件:

import weka.core.Instances;
import java.io.BufferedReader;
import java.io.FileReader;
...
BufferedReader reader = new BufferedReader(new FileReader("data.arff"));
Instances data = new Instances(reader);
reader.close();
data.setClassIndex(data.numAttributes() - 1);

类索引显示应该使用哪个属性进行分类。在大多数 ARFF 文件中,这是最后一个属性,这就是为什么它被设置为 data.numAttributes() - 1。如果你使用的是 Weka 函数,例如 buildClassifier,则必须设置类索引。

Weka> = 3.5.5

在最新版本的 Weka 中,加载 ARFF 文件非常容易。此方法还可以加载 CSV 文件和 Weka 可以理解的任何其他文件。

import weka.core.converters.ConverterUtils.DataSource;
...
DataSource source = new DataSource("data.arff");
Instances data = source.getDataSet();
if (data.classIndex() == -1) {
  data.setClassIndex(data.numAttributes() - 1);
}