【问题标题】:How do I load a Weka model in Java?如何在 Java 中加载 Weka 模型?
【发布时间】:2012-12-21 23:35:09
【问题描述】:

我已经通过右键单击模型并选择“保存模型”来保存 Weka 分类的结果。现在,我想加载它并在我的 Java 应用程序中使用它。我怎样才能做到这一点?模型可以是朴素贝叶斯、决策树或回归。我需要使用这三个模型。

任何建议或解决方案将不胜感激。

【问题讨论】:

    标签: java model machine-learning classification weka


    【解决方案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 具有误导性。它是什么类型的?它是如何启动的?
    猜你喜欢
    • 2016-06-02
    • 2015-01-02
    • 1970-01-01
    • 2013-09-02
    • 2013-05-24
    • 2017-06-08
    • 2014-04-07
    • 1970-01-01
    • 2014-10-12
    相关资源
    最近更新 更多