странные результаты появляются при использовании дерева J48. Мне нужно классифицировать вектор из 48 функций, который работает очень хорошо, но когда я попытался «оптимизировать», я столкнулся с странными результатами.Странные результаты экземпляра weka
У меня есть метод классификации:
public boolean classify(double feature1, double feature2, double[] featureVec) {
Instance toBeClassified = new Instance(2+featureVec.length);
toBeClassified.setValue(0, feature1);
toBeClassified.setValue(1, feature2);
for (int i = 2; i < f.length + 2; ++i) {
toBeClassified.setValue(i, featureVec [i - 2]);
}
toBeClassified.setDataset(dataset);
try {
double _class = tree.classifyInstance(toBeClassified);
return _class > 0;
} catch (Exception e1) {
if(Logging.active) {
logger.error(e1.getMessage(), e1.getCause());}
}
return false;
}
}
Она работает довольно хорошо, и я надеюсь, что я делаю все правильно. Но я хотел удалить создание экземпляра, которое выполняется при каждом вызове метода, поэтому я переместил экземпляр toBeClassified = новый экземпляр (48); line в тело класса - поэтому он создается только один раз. Это тоже хорошо работает, несмотря на то, что я получаю несколько разные результаты по сравнению с другими. скажем, из 400 классификаций, каждый отличается (не говоря уже, неверно). Но я не вижу причины для этого ... Надеюсь, что некоторые ребята используют weka, так что я понимаю, что происходит/не так. (Да, 2 + featureVec.length равно 48).
Спасибо и приветствую.
Вы последовательно получаете одну и ту же классификацию по двум методам для одного и того же примера в одном наборе данных? – Brabster
Кроме того, пока мне интересно узнать, почему вы видите несоответствие - документы Weka http://weka.sourceforge.net/doc/ предполагают, что быстрее было бы создать новый экземпляр вместо изменения существующего. Предполагая, что вы ищете лучшую производительность, вы приурочили/профилировали два метода и обнаружили, что быстрее? – Brabster
@Brabster Да, им нужна производительность, но и для «Мне нравится». Я еще не измерил его, но я мог бы завтра, когда вернусь к работе. Да, это постоянно, если я просто изменяю способ создания экземпляра, я получаю разные результаты все время. – InsertNickHere