使用weka和python加载分类器模型

时间:2014-08-19 06:48:37

标签: java python machine-learning weka

我通过weka保存了火车模型,如LINK

中所述

现在我想在python程序中加载这个模型,并尝试在这个模型的帮助下测试查询。所以我有一个名为" naivebayes.model"作为保存的朴素贝叶斯多项式可更新分类器。我在python-weka wrapper的帮助下尝试了以下代码。但我不确定模型是否正在加载

from weka.core.converters import Loader, Saver
import weka.core.jvm as jvm
from weka.classifiers import Classifier, Evaluation

#starting JVM
jvm.start()

classifier = Classifier(classname="weka.classifiers.bayes.NaiveBayesMultinomialUpdateable", options=['-l','naivebayes.model'])
print(classifier)
print (dir(classifier))

#stopping JVM
jvm.stop()

任何人都可以告诉我这样做的礼仪方式。感谢帮助。

1 个答案:

答案 0 :(得分:2)

-l选项不是由分类器解析的选项,而是由Weka的Evaluation类解析的选项。如果要加载序列化模型,则必须手动反序列化。您可以按如下方式执行此操作:

import weka.core.serialization as serialization
from weka.classifiers import Classifier
objects = serialization.read_all("naivebayes.model")
classifier = Classifier(jobject=objects[0])
print(classifier)

上面的代码假定模型是使用Weka序列化的,因为它在文件,模型和数据集头中存储了两个对象。 上面的代码取自python-weka-wrapper documentation