我正在研究Weka,需要为每个测试实例输出每个标签的预测值(概率).
在GUI中,分类选项卡中有一个选项(分类 - >选项 - >输出预测值),它通过输出每个标签的预测概率但是如何在java代码中执行此操作来完成此工作.我希望在分类后获得每个标签的概率分数?
Wal*_*ter 12
以下代码接受一组训练实例,并输出特定实例的预测概率.
import weka.classifiers.trees.J48;
import weka.core.Instances;
public class Main {
public static void main(String[] args) throws Exception
{
//load training instances
Instances test=...
//build a J48 decision tree
J48 model=new J48();
model.buildClassifier(test);
//decide which instance you want to predict
int s1=2;
//get the predicted probabilities
double[] prediction=model.distributionForInstance(test.get(s1));
//output predictions
for(int i=0; i<prediction.length; i=i+1)
{
System.out.println("Probability of class "+
test.classAttribute().value(i)+
" : "+Double.toString(prediction[i]));
}
}
}
Run Code Online (Sandbox Code Playgroud)
方法"distributionForInstance"仅适用于能够输出分布预测的分类器.你可以在这里阅读.
| 归档时间: |
|
| 查看次数: |
7121 次 |
| 最近记录: |