我的训练和测试数据集的每一行都具有图像中像素的强度值,最后一列具有标记,该标签指示图像中表示的数字;标签可以是训练集中0到9之间的任何数字,并且总是?在测试集上。
我在Weka Explorer上加载了训练数据集,通过NumericalToNominal过滤器传递数据,并使用RemovePercentage过滤器以70-30比例分割数据,30%文件用作交叉验证集。我建了一个classifer并保存了模型。
然后,我加载了哪些测试数据?针对每一行的标签并应用NumericToNominal过滤器并将其保存为arff文件。
现在,当我加载测试数据并尝试使用该模型时,我总是收到错误消息“培训”和测试集不兼容“。两个数据集都经历了相同的处理。什么可能出错?
答案 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