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 {
-
-
-
-
-
- Instances date=new Instances(new BufferedReader(new FileReader("data\\ionosphere.arff")));
-
- date.setClassIndex(date.numAttributes()-1);
- System.out.println(date);
-
-
-
-
-
- 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 {
-
-
-
-
-
-
-
- public static void main(String[] args) throws Exception {
-
-
- CSVLoader loader = new CSVLoader();
- loader.setSource(new File("data\\testcsv.csv"));
- Instances data = loader.getDataSet();
- data.setClassIndex(2);
-
-
- ArffSaver saver = new ArffSaver();
- saver.setInstances(data);
- saver.setFile(new File("data\\testcsv.arff"));
-
- saver.writeBatch();
-
- }
-
- }