# How do i calculate prediction probability of a class in Java Weka Api?

I am developing a prediction model using Java Weka api. I can predict class for the new instance using the following code:

double predictClass = classifer.classifyInstance(instance)


Welcome to the community! You can replace your code by the following code.

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]));
}


This loop prints all the four values.

• Thanks for your quick response. But, I do not understand what classifier.distributionForInstance(instance) return exactly – Howa Begum Nov 6 '18 at 0:57
• @HowaBegum you can see the return value by printing content of variable prediction. It will return four values such as class o, prediction probability, class 1, prediction probability. Hope you understand – Rejaul Karim Nov 6 '18 at 1:05
• Thanks again for your help. It really help me a lot. – Howa Begum Nov 6 '18 at 1:16
• I am glad it helped. – Rejaul Karim Dec 4 '18 at 1:03

It is work good, thanks a lot.There are some correction:

    //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]));
}