我正在使用 Java Weka api 开发一个预测模型。我可以使用以下代码预测新实例的类:
double predictClass = classifer.classifyInstance(instance)
但是,我需要类概率而不是类值。预先感谢您的支持。
我正在使用 Java Weka api 开发一个预测模型。我可以使用以下代码预测新实例的类:
double predictClass = classifer.classifyInstance(instance)
但是,我需要类概率而不是类值。预先感谢您的支持。
欢迎来到社区!您可以用以下代码替换您的代码。
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]));
}
此循环打印所有四个值。
希望它会帮助你。
它工作得很好,非常感谢。有一些更正:
//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]));
}