如何使用java代码在weka中使用新实例测试现有模型?

时间:2011-08-08 07:42:24

标签: java weka

我有一个通过Weka GUI获得的分类器之一的.model文件。现在我想在某个实例上测试这个模型。谁能告诉我怎么做?

Classifier cModel = (Classifier)new NaiveBayes();  
cModel.buildClassifier(isTrainingSet);  

我不想像在这段代码中那样反复构建分类器。如何使用.model文件?

 // Test the model
 Evaluation eTest = new Evaluation(isTrainingSet);
 eTest.evaluateModel(cModel, isTrainingSet);

2 个答案:

答案 0 :(得分:15)

将您的代码与Omer提供的链接中的代码相结合:

Classifier cModel = (Classifier)new NaiveBayes();  
cModel.buildClassifier(isTrainingSet);  

weka.core.SerializationHelper.write("/some/where/nBayes.model", cModel);

Classifier cls = (Classifier) weka.core.SerializationHelper.read("/some/where/nBayes.model");

// Test the model
Evaluation eTest = new Evaluation(isTrainingSet);
eTest.evaluateModel(cls, isTrainingSet);

答案 1 :(得分:2)

你也应该训练你的过滤器 如果您想预测新实例而不重建/重新训练您的分类器/过滤器 你喊道: 1)训练他们两个 2)用weka.core.SerializationHelper保存它们 3)在您的应用程序中重新加载它们并进行预测