如何使用Weka API通过10倍交叉验证建立分类模型?我问这个问题是因为每次交叉验证的运行都会创建一个新的分类模型。我应该在测试数据中使用哪种分类模型?
最佳答案
如果分类器是根据所有训练数据构建的,则使用 10 倍交叉验证来获取分类器准确性的估计。当认为没有足够的数据用于独立测试集时使用它。这意味着您应该在预测 future 数据时根据所有训练数据构建新模型。 10 倍交叉验证的结果是对新分类器性能的猜测。
以下代码显示了通过 API 使用 Weka 交叉验证,然后从整个训练数据集构建新模型的示例。
//Training instances are held in "originalTrain"
Classifier c1 = new NaiveBayes();
Evaluation eval = new Evaluation(originalTrain);
eval.crossValidateModel(c1, originalTrain, 10, new Random(1));
System.out.println("Estimated Accuracy: "+Double.toString(eval.pctCorrect()));
//Train a new classifier
Classifier c2 = new NaiveBayes();
c2.buildClassifier(originalTrain) //predict with this model
关于machine-learning - 交叉验证 - Weka API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167287/