2013-07-21 48 views
0

我是weka的新手。我在java中使用weka來在android phone上訓練我的結果。我在程序啓動時加載了arff文件。weka培訓結果返回0在java中

在訓練集中,我只將名義結果設置爲@attribute Result {1,2,3,4}。所以我想,我應該只接受1,2,3,4。但是,當我在手機上實時地訓練數據時,結果中出現了很多0或-1。

我的問題是:Weka是否有可能在名義值集合之外返回分類結果?像我的情況,我把結果在trainig設定爲1,2,3,4,又恢復了很多0

非常感謝

下面是我的代碼。

int result = 0; 
       try {  
        Instance inst = new DenseInstance(1.0,vals); 
        data.setClassIndex(data.numAttributes() - 1); 
        data.add(inst); 
        inst.setDataset(data); 
        result = (int) m_classifier.classifyInstance(inst); 

       } catch (Exception e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 

回答

1

如果你想調試代碼,你可以將秧雞源代碼weka-src.jarweka.jar,然後打入功能,看看發生了什麼。

有人遇到與您完全相同的問題很難。所以你可能需要嘗試自己調試。我認爲這是你和現在最有效的方式。

enter image description here

+0

謝謝。但是,weka可能會返回一個超出標稱值集的值嗎? – Foreverniu

+0

我認爲名義集中的所有值都有自己的指數。例如,對於'type = {yes,no}','yes'的索引是'0','no'是'1'。 'Attribute.value(index)'根據'index'返回值的名字。我有沒有正確回答你的問題? –

+0

非常感謝。你的回答提醒我檢查這個問題。現在解決了。 – Foreverniu