Classement Instance Unique dans Weka
Je me suis formé et créé un J48 modèle à l'aide de WEKA gui. J'ai enregistré le fichier de modèle de mon ordinateur et maintenant je voudrais l'utiliser pour classer un seul exemple, dans mon code Java. Je voudrais obtenir une prédiction pour l'attribut "cluster". Ce que je fais est la suivante:
public void classify(double lat, double lon, double co)
{
//Create attributes to be used with classifiers
Attribute latitude = new Attribute("latitude");
Attribute longitude = new Attribute("longitude");
Attribute carbonmonoxide = new Attribute("co");
//Create instances for each pollutant with attribute values latitude, longitude and pollutant itself
inst_co = new DenseInstance(4);
//Set instance's values for the attributes "latitude", "longitude", and "pollutant concentration"
inst_co.setValue(latitude, lat);
inst_co.setValue(longitude, lon);
inst_co.setValue(carbonmonoxide, co);
inst_co.setMissing(cluster);
Classifier cls_co = (Classifier) weka.core.SerializationHelper.read("/CO_J48Model.model");//load classifier from file
//Test the model
double result = cls_co.classifyInstance(inst_co);
}
Cependant, je reçois un IndexArrayOutofBoundsException sur la ligne inst_co.setValue(latitude, lat);
. Je ne pouvais pas trouver la raison de cette exception. Je vais apprécier si quelqu'un pouvait me diriger dans la bonne direction.
OriginalL'auteur Erol | 2012-10-23
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter votre inst_co à votre ensemble de données, une des Instances de l'objet. Suivants du code devrait fonctionner.
Vous créez l'objet de données à partir d'Instances. Ajouter votre exemple de ces données. Après cela, vous pouvez définir vos valeurs à l'Instance.
Je vous suggère d'en-tête de l'information et des Instances de valeurs à partir d'un fichier externe ou de la création de cette information qu'une seule fois.
Pas de travail, je suis weka.de base.UnassignedDatasetException: DenseInstance n'ont pas accès à un ensemble de données! erreur. Suppose que je vais devoir l'attribuer à un ensemble de données, peut-être celui que j'ai utilisé pour le train?
vous devez l'affecter à l'ensemble de données avec le même en-tête. Leurs informations d'en-tête doit être la même
Juste pour s'assurer que: j'ai lu dans mon arff fichier avec les données que j'ai utilisé avec le classificateur, céder mon exemple à cet ensemble de données et également attribuer une valeur de classe?
pourriez-vous donner un exemple simple de votre fichier arff?. L'en-tête et 3-4 lignes de données?
OriginalL'auteur Atilla Ozgur
En fait j'ai essayé dans ma situation d'appel de l'instance.setDataSet() la méthode,pas la addInstance méthode.Afin de vous code doit être inst_co.setDataSet(données).
OriginalL'auteur changer