如何在 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 模型?的主要内容,如果未能解决你的问题,请参考以下文章

Weka - 如何在 Java 中使用分类器

如何在脚本中加载 tflite 模型?

如何在 Laravel 中加载嵌套关系

如何在Laravel中加载嵌套关系

如何在 Three.js 中加载 .obj 3D 模型?

如何在 Aframejs 中加载 3d 模型?它目前在threejs中运行良好