2017-07-07 90 views
0

我從weka分類獲得的模型,我想測試它在Java代碼中,但是當我讀到的情況下,一個錯誤出現:如何在java代碼中加載.csv文件以使用weka進行測試?

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)+" ");   
    } 
} 

有人能幫我? 山訓練集是.csv格式

+0

我認爲錯誤是因爲你已經關閉了'BufferedReader'如果'NaiveBayes'使用'train'讀取數據,然後''reader'已經關閉,那麼''reader''可以在'train'中被引用。讓我們嘗試將'reader.close()'移到函數的結尾 –

回答

相關問題