Des résultats étranges apparaissent lors de l'utilisation d'un arbre J48. J'ai besoin de classer un vecteur de 48 fonctionnalités, ce qui fonctionne très bien, mais quand j'ai essayé de "optimiser", je rencontre des résultats étranges.Résultats de l'instance weka étranges
J'ai une méthode Classifier:
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;
}
}
Il fonctionne très bien, et je l'espère, je fais les choses. Mais je voulais supprimer la création d'instance qui est faite à chaque appel de méthode, donc j'ai déplacé l'instance toBeClassified = new Instance (48); ligne dans le corps de la classe - de sorte qu'il est créé qu'une seule fois. Cela fonctionne bien aussi, malgré le fait que je reçois des résultats légèrement différents par rapport à l'autre. disons, à partir de 400 classifications, on est différent (pour ne pas dire incorrect). Mais je ne vois pas de raison pour cela ... J'espère que certains gars utilisent weka, afin que je comprenne ce qui se passe/mal. (Oui, 2 + featureVec.length est 48).
Merci et salutations.
Avez-vous toujours la même classification différente par les deux méthodes pour le même exemple sur le même ensemble de données? – Brabster
Aussi - bien que je sois curieux de savoir pourquoi vous voyez une divergence - les docs Weka http://weka.sourceforge.net/doc/ suggèrent qu'il pourrait être plus rapide de créer une nouvelle Instance au lieu de modifier une instance existante. En supposant que vous cherchez la meilleure performance, avez-vous chronométré/profilé les deux méthodes et trouvé qui est le plus rapide? – Brabster
@Brabster Oui, je suis à la recherche de performance mais aussi pour "J'aime ça". Je l'ai déjà mesuré, mais je pourrais le faire demain quand je serai de retour au travail. Oui, c'est toujours, Si je change juste la manière de créer l'instance, j'obtiens des résultats différents tout le temps. – InsertNickHere