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 - 获得“准确率”?的主要内容,如果未能解决你的问题,请参考以下文章

随机森林表现低于预期

Weka 分类器精度

通过 Java 代码在 Weka GUI 和 Weka 中得到不同的结果

weka的explorer运行j48算法后,输出如下类容,各是啥含义?

Weka 中的训练和测试集不兼容

weka 中的机器学习分类和预测