Weka - 获得“准确率”?
Posted
技术标签:
【中文标题】Weka - 获得“准确率”?【英文标题】:Weka - Get "Accuracy percentage"? 【发布时间】:2013-07-09 21:48:37 【问题描述】:我正在开发一个用 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));
作为先前设置的 FilteredClassifier,正在训练用于构建分类器的数据并测试要分类的实例 我也不确定是否使用此代码进行了良好的分类,如果您可以确认它会很好。
我真正想要的是获得“准确率”。我真的不知道它是否被这样调用,但我不知道如何引用它。基本上我想要一些能返回分类结果准确率的东西。想象一下,我有一个简单的树,它只有 2 个分类,“1”或“2”。想象一下我对一个实例进行分类,结果是“2”。现在我想要一些能够返回实例为“2”的准确度,谁说准确度表示真正为“2”的概率
我希望我说清楚了,因为这对我来说也有点新鲜
【问题讨论】:
【参考方案1】:为此,您必须使用 distributionForInstance() 方法:
double[] probabilityDistribution = fc.distributionForInstance(test.instance[i])
然后,如果您有两个类值“1”和“2”(并且您按顺序将属性/类值添加到类属性中),您可以获得给定测试实例为 1 的概率两个类的值:
// Probability of the test instance beeing a "1"
double classAtt1Prob = probabilityDistribution[0];
// Probability of the test instance beeing a "2"
double classAtt2Prob = probabilityDistribution[1];
【讨论】:
以上是关于Weka - 获得“准确率”?的主要内容,如果未能解决你的问题,请参考以下文章
通过 Java 代码在 Weka GUI 和 Weka 中得到不同的结果