所以我有一套训练和测试集,它们包含多值名义值。只要我需要训练&测试NaiveBayesMultinomial分类器,它不支持多值名义值,我做以下:
java weka.filters.supervised.attribute.NominalToBinary -i train.arff -o train_bin.arff -c last
java weka.filters.supervised.attribute.NominalToBinary -i test.arff -o test_bin.arff -c last
然后我运行:
java weka.classifiers.bayes.NaiveBayesMultinomial -t train_bin.arff -T test_bin.arff
出现以下错误:
Weka exception: Train and test files not compatible!
据我所知,在检查了两个.arff文件之后,在我运行NominalToBinary之后它们变得不兼容,因为列车和测试集是不同的,因此生成了不同的二进制变量。
是否可以以设置保持兼容的方式执行NominalToBinary转换?
答案 0 :(得分:0)
将两个集合连接成一个,执行NominalToBinary转换,然后再次拆分它们。这样,它们应该以相同的方式标准化。
但你确定文件之前是兼容的吗?或者你的测试和/或训练集可能包含另一个没有的属性情况吗?