【问题标题】:Load and save Weka Model using Java API?使用 Java API 加载和保存 Weka 模型?
【发布时间】:2016-06-02 08:12:07
【问题描述】:

我的模型位于硬盘驱动器 d:\MultiNomial.model。 该模型可以从 weka 正确运行。 该模型旨在使用 StringToVector 作为过滤器对文本进行分类。 我正在使用 java 使用 Weka API 加载该模型。 这是我的源代码

import weka.core.*;
import weka.classifiers.bayes.NaiveBayesMultinomial;
import weka.core.converters.ConverterUtils.DataSource;
public class Classifier {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub

        NaiveBayesMultinomial    NBM =(NaiveBayesMultinomial) weka.core.SerializationHelper.read("D:/MultiNomial.model");
        DataSource source= new DataSource(   "D:/test.arff");
        Instances Testset=source.getDataSet() ;
        Testset.setClassIndex(Testset.numAttributes()-1);

        Instance newInstance=Testset.instance(0);
        double PredictVal=NBM.classifyInstance(newInstance);
        System.out.println(PredictVal);

    }

}

但是当我尝试从 Eclipse 运行它时出现以下错误:

Exception in thread "main" java.lang.ClassCastException: weka.classifiers.meta.FilteredClassifier cannot be cast to weka.classifiers.bayes.NaiveBayesMultinomial

有什么问题?

在 Weka 中,我使用了 FilteredClassifier -> Unsupervised-> Attribute->StringToVector。 然后我选择了 NaiveBayesMultinomial 并将我的模型保存在我的驱动器中。 现在当我使用 Java 时,我得到了错误:weka.classifiers.meta.FilteredClassifier cannot be cast to weka.classifiers.bayes.NaiveBayesMultinomial.

我认为必须有一种方法告诉代码如何反转 StringToVector 然后使用:

NaiveBayesMultinomial  NBM =(NaiveBayesMultinomial) weka.core.SerializationHelper.read("D:/MultiNomial.model") 

【问题讨论】:

  • 作为异常状态,序列化分类器不是您要强制转换的类型。
  • 我确信它们是相同的模型分类器算法。我还创建了另一个模型 J48 并转换为 J48 并且有同样的错误! weka.classifiers.meta.FilteredClassifier 不能转换为 weka.classifiers.trees.J48
  • 问题是因为我使用FilteredClassifier "StringToVector" 并且代码不支持在应用分类器算法之前如何在反向模式下完成?
  • @qqilihq 更新了问题

标签: java weka text-classification


【解决方案1】:

尝试

NaiveBayesMultinomial NBM = new NaiveBayesMultinomial();
NBM = (NaiveBayesMultinomial)weka.core.SerializationHelper.read("D:/MultiNomial.model");

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 2013-05-24
    • 2014-10-12
    • 2012-12-21
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2019-09-26
    相关资源
    最近更新 更多