赏金正在关闭,但马克霍尔,在另一个论坛( http://list.waikato.ac.nz/pipermail/wekalist/2015-November/065348.html )值得当前的答案:
您需要实现为交叉验证构建分类器 在你的代码中。您仍然可以使用评估对象来计算统计数据 你的修改后的测试折叠了,因为它计算的统计数据都是 添加剂。 Instances.trainCV()和Instances.testCV()可用于创建 折叠:
http://weka.sourceforge.net/doc.stable/weka/core/Instances.html#trainCV(int,%20int,%20java.util.Random)
然后,您可以调用buildClassifier()来处理每个训练折叠,进行修改 测试折叠到您的心脏内容,然后迭代实例 在使用Evaluation.evaluateModelOnce()的测试折叠中 或Evaluation.evaluateModelOnceAndRecordPrediction()。后来的版本是 如果您需要曲线汇总指标下的区域(如下所示),则非常有用 要求保留预测)。
http://weka.sourceforge.net/doc.stable/weka/classifiers/Evaluation.html#evaluateModelOnce(weka.classifiers.Classifier,%20weka.core.Instance)
http://weka.sourceforge.net/doc.stable/weka/classifiers/Evaluation.html#evaluateModelOnceAndRecordPrediction(weka.classifiers.Classifier,%20weka.core.Instance)
根据您的分类器,它可能非常容易! Weka有一个叫做的界面 UpdateableClassifier 任何使用它的类都可以在构建后更新!以下类实现此接口:
UpdateableClassifier
然后可以更新如下内容:
ArffLoader loader = new ArffLoader(); loader.setFile(new File("/data/data.arff")); Instances structure = loader.getStructure(); structure.setClassIndex(structure.numAttributes() - 1); NaiveBayesUpdateable nb = new NaiveBayesUpdateable(); nb.buildClassifier(structure); Instance current; while ((current = loader.getNextInstance(structure)) != null) { nb.updateClassifier(current); }