WEKA – 从多类分类器中获取预测值

我想在对一些测试实例进行分类时获取一些信息。我使用了带有SMO选项的多类分类模型来预测类别。我在这里找到了一些代码,但这些代码只显示了一些基本信息(ID、起始类别和预测类别)。这确实很不错,但我还想要更多。

这是代码:

double classLabel = cModel.classifyInstance(testInstances.instance(i));System.out.print("ID: " + testInstances.instance(i).value(0));System.out.print(", actual: " + testInstances.classAttribute().value((int) testInstances.instance(i).classValue()));System.out.println(", predicted: " + testInstances.classAttribute().value((int) classLabel));labeled.instance(i).setClassValue(classLabel);

这是控制台输出的一个示例(一切正常,分类效果很好):

ID: 10.840449559881472, actual: class_1, predicted: class_12

我想在输出中添加一个概率值,显示预测类别的概率值在0到1之间(例如0.80…)。我该如何实现这一点?

我尝试过这样做:double[] p = cModel.individualPredictions(testInstances.instance(i));但返回的数字我实在无法理解。

输出的一个示例:

7.664525149317826E-177

编辑:

好的。现在我使用了distributionForInstance方法,它确实返回了一些实际的数字(之前使用时返回了一些奇怪的数字),但有些案例的预测值非常低,尽管它们被正确分类了。可能需要向我的分类器添加更多样本,但至少现在它能给出结果了。

这块代码显示了结果(供将来参考):

double[] p = cModel.distributionForInstance(testInstances.instance(i));

一些正确分类的未知样本的预测示例:

0.6801721826680843 — 示例1 类别12

0.9834993119977282 — 示例2 类别14

0.20165539938974703 — 示例3 类别1

0.9947991411834111 — 示例4 类别9

0.9809472418105786 — 示例5 类别3

我可能会坚持使用这个解决方案,因为这是我目前找到的最合理的一个。

再次感谢。


回答:

因此,我将在这里回答自己的问题,因为我想帮助SO关闭它并继续前进。

classifyInstance()方法将实例分类到一个类别中,但没有提供我所需的数据。

我尝试了double[] p = cModel.individualPredictions(testInstances.instance(i));double[] p = cModel.distributionForInstance(testInstances.instance(i));,这两者都返回了结果。

我坚持使用cModel.distributionForInstance(testInstances.instance(i));方法,因为我需要手动从结果中排除一些类别。从MultiClassClassifier中忽略不需要的分布是目前唯一可能的解决方案。这暂时解决了我的类别过滤问题,这些类别与我期望的判定相距甚远。

相关帖子在这里:WEKA – 在多类分类器中过滤类别

再次感谢。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注