Weka - 获得"准确度百分比"?

时间:2013-07-11 14:45:23

标签: weka

我正在开发一个用Java编写的Web服务来使用Weka算法j48来分类一些属性。首先,它构建分类器,然后使用分类器树对实例进行分类。

这是我对classifydata方法

的代码的一部分
fc.buildClassifier(train);
for (int i = 0; i < test.numInstances(); i++)
{
double pred = fc.classifyInstance(test.instance(i));
predicated = (test.classAttribute().value((int) pred));
}

将fc设置为先前设置的FilteredClassifier,正在训练用于构建分类器的数据并测试实例以进行分类 我也不确定使用这个代码我是否做了很好的分类,如果你能证实它会很好。

我真正想要的是获得“准确率”。我真的不知道它是否被这样称呼,但我不知道如何改写它。基本上我想要的东西会返回分类结果的准确百分比。想象一下,我有一个简单的树只有2个分类,“1”或“2”。想象一下,我对一个实例进行了分类,结果为“2”。现在我想要的东西将返回实例为“2”的准确程度,并且说准确性表示实际上是“2”的可能性

我希望自己清楚明白,因为这对我来说还是个新手

1 个答案:

答案 0 :(得分:1)

为此你必须使用distributionForInstance()方法:

double[] probabilityDistribution = fc.distributionForInstance(test.instance[i])

然后,如果您有两个类值“1”和“2”(并且您按照该顺序将属性/类值添加到类属性中),则可以获得给定测试实例的概率通过以下两个类值:

// Probability of the test instance beeing a "1"
double classAtt1Prob = probabilityDistribution[0];
// Probability of the test instance beeing a "2"
double classAtt2Prob = probabilityDistribution[1];