如何在 Java 中加载 Weka 模型?
Posted
技术标签:
【中文标题】如何在 Java 中加载 Weka 模型?【英文标题】:How do I load a Weka model in Java? 【发布时间】:2012-12-21 23:35:09 【问题描述】:我已经通过右键单击模型并选择“保存模型”来保存 Weka 分类的结果。现在,我想加载它并在我的 Java 应用程序中使用它。我怎样才能做到这一点?模型可以是朴素贝叶斯、决策树或回归。我需要使用这三个模型。
任何建议或解决方案将不胜感激。
【问题讨论】:
【参考方案1】:这是一个示例,假设您将 RandomTree 模型保存到 model.weka
文件(更改为您拥有的任何分类器和文件)
RandomTree treeClassifier = (RandomTree) SerializationHelper.read(new FileInputStream("model.weka")));
【讨论】:
有人可以确认这是否有效吗?它是model.weka 还是weka.model。我从未听说过 .weka 文件... 使用本指南保存经过训练的模型文件(“model.weka”):machinelearningmastery.com/…【参考方案2】:如果您将模型保存到 WEKA 中的文件中,则可以使用它来读取生成的 java 对象。 这是一个带有随机森林分类器的示例(之前保存到 WEKA 中的文件):
RandomForest rf = (RandomForest) (new ObjectInputStream(PATH_TO_MODEL_FILE)).readObject();
不要忘记导入:
import weka.core.Instance;
import weka.core.Instances;
import weka.core.Attribute;
import weka.core.FastVector;
import weka.classifiers.trees.RandomForest;
【讨论】:
构造函数 ObjectInputStream 未定义。 @DamirOlejar 它在 io 中:docs.oracle.com/javase/7/docs/api/java/io/… 是的,那是一个错误!也许它不仅仅是需要存在的文件的路径? @DamirOlejar 我做了一个import java.io.ObjectInputStream;
并且刚刚工作(它带有Java)。
那么也许 PATH_TO_MODEL_FILE 具有误导性。它是什么类型的?它是如何启动的?以上是关于如何在 Java 中加载 Weka 模型?的主要内容,如果未能解决你的问题,请参考以下文章