【发布时间】:2019-11-05 08:38:55
【问题描述】:
我在 Weka 中创建了一个 NaiveBayes 模型。我将模型导出到磁盘。我现在想将此模型注入 MATLAB 2018,以便通过我收到的一些数据检查它的性能。
我在 MATLAB 中加载我的模型,方法如下:
loadedModel = weka.core.SerializationHelper.read('myweka.model');
然后我创建一个 Weka Instance 对象,并让它包含这些数据:
instance = infrequent,low,high,medium-high,high,medium,medium,low,low
如果我运行这两个命令:
loadedModel.distributionForInstance(instance)
loadedModel.classifyInstance(instance)
我看到以下输出:
0.0001
0.9999
1
这对我来说很奇怪,因为如果我在 WEKA ui 中观察到相同的记录,我会看到概率为 0.993 和 0.007 的相同实例,分类为“2”。 (我可以在 WEKA 中多次从磁盘加载相同的模型,并重现此行为,这是正确的)经过进一步调查,我注意到无论我的 Instance 对象具有的属性顺序如何,我总是得到相同的概率输出和通过 MATLAB 调用模型进行相同的分类。
网上有一些帖子有同样的问题,比如:
Always getting the same output
Weka - Classifier returns the same distribution for any input
但是,调用“instance.setClassMissing()”的推荐解决方案并没有解决我的问题。有什么我遗漏的,或者可以尝试做些什么来进一步解决问题吗?
【问题讨论】:
标签: matlab machine-learning weka