載入 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);
}