我在Weka中使用属性选择在FilteredClassifier上训练我的模型。现在,我无法使用序列化模型进行测试数据分类,我搜索了很多,但实在无法弄清楚。这就是我现在正在做的事情:
java -cp $CLASSPATH weka.filters.supervised.attribute.AddClassification\
-serialized Working.model \
-classification \
-remove-old-class \
-i full_data.arff \
-c last
它给我一个错误说
weka.core.WekaException: Training header of classifier and filter dataset don't match
但他们不应该是正确的吗?由于测试数据不应该在标题中有类。我该怎么用?此外,我希望所选属性将被序列化并保存在模型中,因为需要对测试数据进行相同的属性选择。
我不喜欢使用Batch分类器,因为它会破坏保存模型的功能,并且每次都需要我运行整个训练。
答案 0 :(得分:1)
使其工作的一种简单方法是将名义类添加到您使用具有虚拟值的随机类创建的ARFF文件中,然后使用-remove-old-class选项将其删除。
所以你的命令会保持不变,但这次你的ARFF文件会有这个类。