0

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

这是我的分类数据方法代码的一部分

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”的概率

我希望我说清楚了,因为这对我来说也有点新鲜

4

1 回答 1

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];
于 2013-07-31T13:18:51.423 回答