2013-07-21 2 views
0

Я новичок в weka. Я использую weka в java для обучения моего результата на телефоне Android. Я загрузил файл arff при запуске программы.weka результат обучения возвращение 0 в java

В тренировочном наборе я установил только номинальный результат @attribute Результат {1,2,3,4}. Поэтому, я думал, я должен получить только 1,2,3,4. Но, когда я тренирую данные в режиме реального времени по телефону, в результате появилось много 0 или -1.

Мой вопрос: возможно ли вернуть Weka результат классификации за пределы установленного номинального значения? Как и в моем случае, я установил результат в наборе УЧЕБНОГО, как 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.jar к weka.jar и затем перерыв в функцию, чтобы посмотреть, что случилось.

Очень сложно, что с вами столкнулась точно такая же проблема. Поэтому вам может потребоваться отладка самостоятельно. Я думаю, что это самый эффективный способ для вас и сейчас.

enter image description here

+0

Спасибо. Но возможно ли в weka вернуть значение за пределами установленного номинального значения? – Foreverniu

+0

Я думаю, что все значения в номинальных наборах имеют свои собственные индексы. Например, для 'type = {yes, no}', индекс 'yes' равен' 0', а 'no' -' 1'. 'Attribute.value (index)' возвращает имя значения в соответствии с 'index'. Правильно ли я получил ваш вопрос? –

+0

Большое спасибо. Ваш ответ напомнил мне, чтобы проверить эту проблему. Теперь он решил. – Foreverniu