0

我的训练和测试数据集的每一行都有图像中像素的强度值,最后一列的标签告诉图像中代表的是什么数字;标签可以是训练集中从 0 到 9 的任意数字,并且总是?在测试集上。

我在 Weka Explorer 上加载了训练数据集,通过 NumericalToNominal 过滤器传递数据,并使用 RemovePercentage 过滤器以 70-30 的比例拆分数据,30% 的文件用作交叉验证集。我建立了一个分类器并保存了模型。

然后,我加载了测试数据,其中有?针对每一行的标签并应用 NumericToNominal 过滤器并将其保存为 arff 文件。

现在,当我加载测试数据并尝试针对它使用模型时,我总是收到错误消息,说“训练和测试集不兼容”。两个数据集都经过了相同的处理。可能出了什么问题?

4

2 回答 2

1

正如您可以从 ARFF 手册 ( http://www.cs.waikato.ac.nz/ml/weka/arff.html ) 中阅读的:

通过提供可能值的列表来定义标称值:{, , , ...}

例如,鸢尾花数据集的类值可以定义如下:

@ATTRIBUTE class        {Iris-setosa,Iris-versicolor,Iris-virginica}

因此,当您申请NumericToNominal测试文件时,您可能会在 train 和 test arff 中为一个或多个属性设置不同数量的可能值 - 这确实会发生,它困扰了我很多次 - 所以一种解决方案是手动检查您的 arff(如果它不是很大,或者只是复制和粘贴 arff 文件的调用,例如

@attribute 'My first binary attribute' {0,1}
(...)
@attribute 'My last binary attribute' {0,1}

从火车到测试文件 - 应该工作

于 2013-01-17T20:49:44.907 回答
0

您可以使用批量过滤,在这里您可以阅读如何在 weka中批量过滤

于 2015-11-10T02:14:31.467 回答