我通过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()
任何人都可以告诉我这样做的礼仪方式。感谢帮助。
答案 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。