在Java中使用weka:将实例转化为ARFF文件

转换器

使用ArffSaver类(weka.core.converters.ArffSaver)来保存一个weka.core.Instances对象到ARFF文件中。

Instances dataSet = ...
 ArffSaver saver = new ArffSaver();
 saver.setInstances(dataSet);
 saver.setFile(new File("./data/test.arff"));
 saver.setDestination(new File("./data/test.arff"));   // **not** necessary in 3.5.4 and later
 saver.writeBatch();

备注:通过使用转换器这种方法可以很容易的将   ArffSaver和其他Saver比如 CSVSaver进行转换,使用不同的格式来输出数据。

  •  Weka Examples 中有很多例子,在 wekaexamples.core.converters 包里面
    • book
    • stable-3.6
    • developer


Java I/O

也可以直接使用JAVA I/O类来保存 weka.core.Instances对象

import java.io.BufferedWriter;
 import java.io.FileWriter;
 ...
 Instances dataSet = ...
 BufferedWriter writer = new BufferedWriter(new FileWriter("./data/test.arff"));
 writer.write(dataSet.toString());
 writer.flush();
 writer.close();


备注:通过  weka.core.Instances的 toString()方法不能很好的处理大型数据集,因为会将完整的字符串数据写入内存中。最好使用前面讲到的转换器,通过增量的方法来将数据写入磁盘。

你可能感兴趣的:(java,数据挖掘,weka)