Weka:训练和测试集不兼容

时间:2013-01-17 15:03:22

标签: weka

我的训练和测试数据集的每一行都具有图像中像素的强度值,最后一列具有标记,该标签指示图像中表示的数字;标签可以是训练集中0到9之间的任何数字,并且总是?在测试集上。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

  

标称值是通过提供一个来定义的   列出可能的值:{,,   ,...}

     

例如,Iris数据集的类值可以定义为   如下:

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

因此,当您将NumericToNominal应用于测试文件时,您可能会为列车和测试中的一个或多个属性提供不同数量的可能值 - 它确实可能发生,这让我困扰了很多次 - 所以一个解决方案是手动检查您的arff(如果它不是很大,或只是复制和粘贴arff文件的调用 e.g。

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

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

答案 1 :(得分:0)

您可以使用批量过滤,在这里您可以阅读weka中的batch filtering