Weka文件读取及导出[1]

来源:互联网 发布:mcu选型软件 编辑:程序博客网 时间:2024/05/02 00:30

1,weka文件读取分3类,分别为:ARFF(weka自身文件读取),CSV(文本文件读取),数据库直接读取


1.1,ARFF(weka自身文件读取),比较容易直接使用Instances类即可


1.2,CSV文件读取需要使用dataSource类


import java.io.BufferedReader;import java.io.FileReader;import weka.core.Instances;import weka.core.converters.ConverterUtils.DataSource;public class readfile {public static void main(String[] args) throws Exception {/* *  arff文件读入 */Instances date=new Instances(new BufferedReader(new FileReader("data\\ionosphere.arff")));date.setClassIndex(date.numAttributes()-1);System.out.println(date);/* *  CSV文件读入 */DataSource source =new DataSource("data\\testcsv.csv");Instances data=source.getDataSet();if(data.classIndex()==-1)data.setClassIndex(data.numAttributes()-1);System.out.println(data);}}


2,weka中文件导出,导出格式应该只有ARFF一种,即weka自身文件格式


import weka.core.Instances;import weka.core.converters.ArffSaver;import weka.core.converters.CSVLoader;import java.io.File;public class CSV2ARFF {/** * takes 2 arguments: * - CSV input file * - ARFF output file */public static void main(String[] args) throws Exception {    // load CSV    CSVLoader loader = new CSVLoader();    loader.setSource(new File("data\\testcsv.csv"));    Instances data = loader.getDataSet();    data.setClassIndex(2);     // save ARFF    ArffSaver saver = new ArffSaver();    saver.setInstances(data);    saver.setFile(new File("data\\testcsv.arff"));    //saver.setDestination(new File(args[1]));    saver.writeBatch();    }}


0 0