1

我有一个未标记的数据集,我想用我新训练的分类器在 Weka 中使用 NaiveBayes 分类对其进行分类。所以实际上,当在 weka 的分类模式下,如果我给出选项 Supplied Test set,那么只有当它被标记并评估并给出准确性时,它才会接受测试集。但我想要的是使用 train.csv 或 train.arff 文件对其进行训练,然后给它一个新的看不见且未标记的 test.csv 或 test.arff 文件,并对它进行分类并根据训练文件中的类给它标签。但是,如果我向 wweka 提供一个未标记的文件作为测试文件,它会给出:

错误:训练和测试集不兼容

我的训练和测试文件的示例格式如下:

火车.csv 文件:
文章故事.......曲棍球课
1 0 ...... 0 政治
0 0 .......1 运动
.
.
.
.
. 运动的

和 Test.csv 文件:

文章故事.......曲棍球课
0 1 ...... 0      
1 0 ........1      
.
.
.
.
.

那么如何使用 NaiveBayes 分类器对 Weka 中未标记的数据集进行分类?

4

3 回答 3

1

看来您缺少类标签。Weka 要求训练集和测试集以相同的顺序具有完全相同的属性。现在有两种情况:

你知道你的测试集的类

性能是通过将实际类标签与预测类标签进行比较来计算的。您需要像在训练集中一样在测试集中提供类标签。

你不知道你的测试集的类

为了计算性能,Weka 需要将预测的类与实际的类进行比较。如果您没有实际的课程,则无法计算性能。你只能预测类。class如果您只想进行预测,则必须为您的测试实例添加一个缺少值的标签。

于 2013-05-08T10:08:09.540 回答
0

您不能将其全部留空,您需要在类字段上为每个类标签设置至少一个(作为 weka 的某种“线索”)

  • 文章故事.......曲棍球课
  • 0 1 ...... 0 政治
  • 1 0 ........1 运动
  • 1 1 ........1 ?
  • 1 1 ........1 ?

前两行将提供 weka 预测类的示例。然后,您可以使用训练有素的模型预测尽可能多的没有类(?)的实例

于 2013-11-28T06:48:22.490 回答
0

即使您的测试集被标记,Weka 在第一阶段也不会看到它。它将使用您使用训练数据开发的分类器,然后将分类器应用于您提供的测试集。然后分类器预测每个实例类,然后 Weka 跟踪正确或不正确的分类。所以,你在这里所做的正是你想要实现的。该错误表明训练集和测试集不兼容,因为我相信您已从测试集中删除了“类”标签。不用担心。保持原样,您从 Weka 获得的准确度是分类器的实际性能。希望有帮助。

于 2012-04-12T00:11:28.387 回答