Java 在WEKA中运行交叉验证之前是否需要应用过滤器
我想在我使用的一些分类器上运行n倍交叉验证。我在上找到了示例代码(这里是),但这在运行验证之前应用了一个过滤器。是否总是需要这样做,还是不需要这样做 以下是代码部分:Java 在WEKA中运行交叉验证之前是否需要应用过滤器,java,machine-learning,weka,classification,Java,Machine Learning,Weka,Classification,我想在我使用的一些分类器上运行n倍交叉验证。我在上找到了示例代码(这里是),但这在运行验证之前应用了一个过滤器。是否总是需要这样做,还是不需要这样做 以下是代码部分: /** * runs 10fold CV over the training file */ public void execute() throws Exception { // run filter m_Filter.setInputFormat(m_Training); Insta
/**
* runs 10fold CV over the training file
*/
public void execute() throws Exception {
// run filter
m_Filter.setInputFormat(m_Training);
Instances filtered = Filter.useFilter(m_Training, m_Filter);
// train classifier on complete file for tree
m_Classifier.buildClassifier(filtered);
// 10fold CV with seed=1
m_Evaluation = new Evaluation(filtered);
m_Evaluation.crossValidateModel(
m_Classifier, filtered, 10, m_Training.getRandomNumberGenerator(1));
}
这也是评价分类器性能的一种可接受的方法吗?
< P>我会考虑这个糟糕的练习。如果过滤器依赖/使用类信息,则交叉验证估计将(可能非常)乐观地有偏差,因此可能无用。对于一个极端的例子,请考虑将class属性的副本添加到数据中。在几乎所有情况下,如果您使用weka.classifiers.meta.FilteredClassifier,您的生活会更好、更安全。在您引用的同一Wiki页面上,有一个关于如何使用它的示例干杯,伯恩哈德我实际上不想使用任何过滤器。我是weka的新手,所以我想确保我只使用crossValidateModel方法而不进行过滤。我可以这样做吗?