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」而代碼不支持在應用分類器算法之前如何在反向模式下完成? –