我有一个未标记的数据集,我想用我在Weka中使用NaiveBayes分类的新训练的分类器进行分类。所以实际上当我在weka中的分类模式中,如果我给出选项提供的测试集,那么它只接受测试集,如果它被标记并评估并给出准确性。 但我想要的是使用train.csv或train.arff文件训练它,然后给它一个新的看不见且未标记的test.csv或test.arff文件并对其进行分类并根据训练文件中的类给它标签。但是,如果我将一个未标记的文件作为测试文件提供给wweka,它会给出:
错误:训练和测试组不兼容
我的培训和测试文件的样本格式如下:
Train.csv file: article story .......hockey class 1 0 ...... 0 politics 0 0 .......1 sports . . . . . sports
和Test.csv文件:
article story .......hockey class 0 1 ...... 0 1 0 .......1 . . . . .
那么如何使用NaiveBayes分类器对Weka中的未标记数据集进行分类?
答案 0 :(得分:1)
似乎你错过了班级标签。 Weka要求训练和测试集以相同的顺序具有完全相同的属性。现在有两种情况:
您知道测试集的类
通过将实际的类标签与预测的标签进行比较来计算性能。您需要像在训练集中一样提供测试集中的类标签。
您不知道测试集的类
要计算性能,Weka需要将预测类与实际类进行比较。如果您没有实际的类,则无法计算性能。你只能预测课程。
如果您只想进行预测,则必须为测试实例添加缺少值的class
标签。
答案 1 :(得分:0)
即使您的测试集已贴上标签,Weka也不会在第一阶段看到它。它将使用您使用训练数据开发的分类器,然后将分类器应用于您提供的测试集。然后分类器预测每个实例类,然后Weka跟踪正确或不正确的分类。所以,你在这里所做的正是你想要实现的目标。错误告诉我们训练和测试集不兼容,因为我相信你已从测试集中删除了“class”标签。别担心。保持原样,从Weka获得的准确性是分类器的实际性能。希望有所帮助。
答案 2 :(得分:0)
你不能把它全部留空,你需要在类字段上设置至少一个每个类标签(作为weka的某种“线索”)
第一行将为weka提供预测类的示例。然后,您可以使用训练有素的模型预测没有类(?)的实例