2013-04-16 26 views
0

我想查看我的分類實例。如何查看WEKA中的所有分類實例API

我想是這樣的:

for(int i = 0; i < dataSet.size(); i++) { 
    double pred = nowy.classifyInstance(dataSet.instance(i)); 
    double actual = dataSet.instance(i).classValue(); 
    double[] dist = nowy.distributionForInstance(dataSet.instance(i)); 

    if (pred != actual) 
    { 
     System.out.print((i+1)); 
     System.out.print(" - "); 
     System.out.print(dataSet.instance(i).toString(dataSet.classIndex())); 
     System.out.print(" - "); 
     System.out.print(dataSet.classAttribute().value((int) pred)); 
     System.out.print(" - "); 

     if (pred != dataSet.instance(i).classValue()) 
      System.out.print("no"); 
     else 
      System.out.print("yes"); 
     System.out.println(); 

    } 

} 

,但它似乎不順利,因爲正確/錯誤分類實例的數量是從統計輸出不同。

回答

0

您還可以使用WEKA API中提供的評估類一次性測試所有實例。

Instances trainData = ds.getDataset(); //get training dataset 

SMO sm = new SMO(); //build classifier 

sm.buildClassifier(data); //train classifier 

Instances testData = ds.getDataSet(); //now get the test set 

Evaluation eval = new Evaluation(data); //for recording results 

eval.evaluateModel(sm, testData); 

System.out.println(eval.toMatrixString()); //gives the confusion matrix for predictions