0
我在d:\ MultiNomial.model的硬盘上安装了我的模型。 该模型可以从weka正确运行。 该模型用于将使用StringToVector作为过滤器的文本分类。 我正在使用java来使用Weka API加载该模型。 这是我的源代码使用Java API加载并保存Weka模型?
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无法转换为weka.classifiers.bayes.NaiveBayesMultinomial。
我认为必须有一种方式来告诉代码如何扭转StringToVector然后使用:
NaiveBayesMultinomial NBM =(NaiveBayesMultinomial) weka.core.SerializationHelper.read("D:/MultiNomial.model")
作为异常状态,系列化分类的类型是不你正试图施展它。 – qqilihq
我相信他们是相同的模型分类器算法。我还创建了另一个型号J48,并转让给J48,并有相同的错误! weka.classifiers.meta.FilteredClassifier不能转换为weka.classifiers.trees.J48 –
是因为我使用FilteredClassifier“StringToVector”而代码不支持在应用分类器算法之前如何在反向模式下完成? –