WEKA 中的交叉验证和 SMOTE

Cross-Validation and SMOTE in WEKA

我正在尝试 运行 使用带 SMOTE 的 FilteredClassifier 在 WEKA 上进行 5 折交叉验证。

据我所知,我应该在每个 CV 折叠中应用 SMOTE 以获得我的 CV 错误。

是否有人有关于 WEKA 如何使用

在 FilteredClassifier 中执行 CV 的文档或背景
Evaluation().crossvalidate_model(INPUTS)

我正在使用 python 和 weka-wrapper。

谢谢!

Weka 对待 FilteredClassifier meta-classifier 就像对待任何其他 classifier 一样(因为它们都实现了 weka.classifiers.Classifier 接口)。

如果您正在执行 5 折 CV,则数据会被分成 5 对 train/test 折,每次 classifier 都使用训练折进行训练,然后在测试折叠。 weka.classifiers.Evaluation class 记录了每个折叠的测试数据得到的统计数据。

在您的情况下(对于每个 train/test 折叠),FilteredClassifier 使用训练数据初始化 SMOTE 过滤器并在构建基础之前对其进行过滤-class 与它。

所以答案是肯定的,您的 SMOTE 过滤器已初始化并应用于每个 CV 折叠。

Weka 问题的官方位置是 Weka mailing list