[英]How can I load a .csv file in java code to test with weka?
我有一个从weka
分类器获得的模型,我想用 java 代码测试它,但是当我读取实例时,出现错误:
Exception in thread "main" java.io.IOException: keyword @relation expected, read Token[Word], line 1
at weka.core.Instances.errms(Instances.java:1863)
at weka.core.Instances.readHeader(Instances.java:1740)
at weka.core.Instances.<init>(Instances.java:119)
at licenta1.LoadModelWeka.main(LoadModelWeka.java:18)
我的代码是:
package licenta1;
import weka.core.Instances;
import weka.classifiers.bayes.NaiveBayes;
import weka.classifiers.trees.J48;
import weka.classifiers.Evaluation;
import java.util.Random;
import java.io.BufferedReader;
import java.io.FileReader ;
public class LoadModelWeka
{
public static void main(String[] args) throws Exception {
// training
BufferedReader reader = null;
reader=new BufferedReader(new FileReader("D:\\aaaaaaaaaaaaaaaaaaaaaa\\Licenta\\BioArtLicTrainSetTask1.csv"));
Instances train =new Instances (reader);
train.setClassIndex(0);
reader.close();
NaiveBayes nb = new NaiveBayes();
nb.buildClassifier(train);
Evaluation eval = new Evaluation(train);
eval.crossValidateModel(nb, train, 10 , new Random(1));
System.out.println(eval.toSummaryString("\n Results \n=====\n",true));
System.out.println(eval.fMeasure(1)+" "+eval.precision(1)+" "+eval.recall(1)+" ");
}
}
有人可以帮我吗? Mt训练集为.csv
格式
此代码段对于直接加载 csv 内容并将其转换为实例很有用。 通常 .arff 用于 weka 操作,此加载器直接在内部将 csv 文件转换为 arff,然后再转换为 Instances 类。
CSVLoader loader = new CSVLoader();
loader.setSource(new File("filename.csv"));
Instances trainingDataSet = loader.getDataSet();
您可以尝试使用 Buffered Reader 而不是
DataSource source = new DataSource("/some/where/data.arff");
有关更多信息,请访问此链接http://weka.wikispaces.com/Use+WEKA+in+your+Java+code
我使用 weka jar 3.7.10,这就是我如何使用 weka 加载 csv:
DataSource source1 = new DataSource("D:\\aaaaaaaaaaaaaaaaaaaaaa\\Licenta\\BioArtLicTrainSetTask1.csv"); Instances pred_test = source1.getDataSet();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.