gpt4 book ai didi

java - 在 WEKA 中运行交叉验证之前是否需要应用过滤器

转载 作者:行者123 更新时间:2023-11-30 09:38:45 24 4
gpt4 key购买 nike

我想对我正在使用的一些分类器运行 n 折交叉验证。我在 WEKA Wiki 上找到了示例代码(这里是 WekaDemo.java )但这在运行验证之前应用了过滤器。这是否总是需要完成或不需要?

这是代码部分:

  /**
* 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));
}

这也是评估分类器性能的可接受的方法吗?

最佳答案

我认为这是不好的做法。如果过滤器依赖于/使用类信息,那么交叉验证估计将(可能非常)乐观地偏差,因此可能毫无用处。举一个极端的例子,考虑将类属性的副本添加到数据中。在几乎所有情况下,如果您使用 weka.classifiers.meta.FilteredClassifier,您会变得更好、更安全,在您引用的同一 Wiki 页面上有一个关于如何使用它的示例。

干杯,伯恩哈德

关于java - 在 WEKA 中运行交叉验证之前是否需要应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8477516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com