Come posso calcolare la probabilità di previsione di una classe in Java Weka Api?


9

Sto sviluppando un modello di previsione utilizzando Java Weka api. Posso prevedere la classe per la nuova istanza utilizzando il seguente codice:

double predictClass = classifer.classifyInstance(instance)

Tuttavia, ho bisogno della probabilità della classe anziché del valore della classe. Grazie in anticipo per il tuo supporto.

Risposte:


8

Benvenuto nella community! Puoi sostituire il tuo codice con il seguente codice.

double[] prediction=classifier.distributionForInstance(instance);

    for (int k<prediction.length; k++){
    System.out.println("Probability of class "+
      trains.classAttribute().value(k)+
       " : "+Double.toString(prediction[k]));
      }

Questo ciclo stampa tutti e quattro i valori.
Spero che ti possa aiutare.


1
Grazie per la sua pronta risposta. Ma non capisco cosa restituisca esattamente classifier.distributionForInstance (istanza)
— Howa Begum,

1
@HowaBegum è possibile visualizzare il valore restituito stampando il contenuto della previsione variabile. Restituirà quattro valori come classe o, probabilità di previsione, classe 1, probabilità di previsione. Spero che tu capisca
— Rejaul Karim,

1
Grazie ancora per il vostro aiuto. Mi aiuta davvero molto.
— Howa Begum,

1
Sono contento che abbia aiutato.
— Rejaul Karim,

1

Funziona bene, grazie mille. Ci sono alcune correzioni:

    //Dont forget create new Instance for prediction.
    DenseInstance newinstance = new DenseInstance(2);
    double[] prediction=classifier.distributionForInstance(newinstance);
    //Some correction in for 
        for (int k =0; k<prediction.length; k++){
            System.out.println("Probability of class "+
                    newinstance.classAttribute().value(k)+
                    " : "+Double.toString(prediction[k]));
        }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.