我正在尝试使用训练数据集创建一个模型,并希望对测试数据集中的记录进行标记。
我在网上找到的所有教程或帮助信息都只涉及使用一个数据集(即训练数据集)进行交叉验证。我找不到如何使用测试数据的信息。我尝试将结果模型应用到测试集上,但预处理后测试集似乎与训练集的属性数量不同。这是一个文本分类问题。
最后我得到了一些这样的输出
18.03.2013 01:47:00 Results of ResultWriter 'Write as Text (2)' [1]: 18.03.2013 01:47:00 SimpleExampleSet:5275 examples,366 regular attributes,special attributes = {confidence_1 = #367: confidence(1) (real/single_value)confidence_5 = #368: confidence(5) (real/single_value)confidence_2 = #369: confidence(2) (real/single_value)confidence_4 = #370: confidence(4) (real/single_value)prediction = #366: prediction(label) (nominal/single_value)/values=[1, 5, 2, 4]}
但我想要的是所有示例都被标记。
似乎我的测试数据和训练数据的属性数量不同,我在日志中看到了很多以下内容。
2013年3月18日上午1:46:41 警告:内核模型:给定的示例集不包含名为’wireless’的常规属性。这可能会对依赖此特定属性的某些模型造成问题。
但在文本分类中,我们无法事先知道属性数量和名称,该如何解决这样的问题呢?
能否有人提供一些指导意见?
回答:
您可能使用了“处理文档”操作符来预处理训练集和测试集。在这里,重要的是这两个操作符的设置必须完全相同。为了“同步”词表,即在两者中考虑相同的一组词,您需要将用于训练的“处理文档”操作符的词表(wor)输出连接到用于预处理测试集的“处理文档”操作符的相应输入端口。