我正在写关于德语文本命名实体识别的硕士论文,我想使用 Weka 来完成机器学习部分。我是 Weka 新手,所以我不明白为什么我没有得到结果,尽管训练过程很成功并且我得到了一个模型。
我使用 J48 训练了一个模型,另一个使用 NaiveBayes 训练。首先,我收到了 stackoverflow 上已经讨论过的错误消息(训练集和测试集不兼容),但我纠正了这一点。因此,当我重新评估时,我没有收到任何错误消息,Weka 给出了结果,但这些结果除了零之外不包含任何其他内容:
===测试集重新评估===
用户提供的测试集 关系:train-weka.filters.unsupervised.attribute.StringToNominal-R1-10,12-last 实例:未知(尚)。循序渐进地阅读 属性:15
===总结===
实例总数0
忽略类未知实例 207484
=== 按类别划分的详细准确度 ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
0 0 0 0 0 ? O
0 0 0 0 0 ? I-PER
0 0 0 0 0 ? I-LOC
0 0 0 0 0 ? I-MISC
0 0 0 0 0 ? I-ORG
0 0 0 0 0 ? B-MISC
0 0 0 0 0 ? B-LOC
0 0 0 0 0 ? B-ORG
加权平均。 NaN NaN NaN NaN NaN NaN
===混淆矩阵===
a b c d e f g h <-- 分类为
0 0 0 0 0 0 0 0 |一个=O
0 0 0 0 0 0 0 0 | b = I-PER
0 0 0 0 0 0 0 0 | c = I-LOC
0 0 0 0 0 0 0 0 | d = I-MISC
0 0 0 0 0 0 0 0 | e = I-ORG
0 0 0 0 0 0 0 0 | f = B-MISC
0 0 0 0 0 0 0 0 | g = B-LOC
0 0 0 0 0 0 0 0 | h = B-ORG
我的测试和训练数据仅包含名义数据和数值数据,arff 文件的 header 是相同的,并且我没有从 Weka 收到任何错误消息。因此,我不知道我哪里做错了,也不知道我必须做什么才能得到结果。我用 Weka 版本 3-6 和版本 3-7-10 进行了尝试,但结果始终相同。
有人知道为什么我的测试集的评估不起作用吗?提前致谢!
最佳答案
在我看来,也许WEKA不知道你的数据中的类属性是什么?在 Weka Explorer GUI 的“分类”选项卡下,有一个下拉列表用于选择类属性 - 确保选择了正确的类。
如果这不是问题,您是否确保您的测试数据有效并且可以在 WEKA 中处理?一个简单的测试是使用 WEKA 使用原始测试数据(例如作为临时训练数据)来训练模型。
关于testing - Weka:为什么用我的测试集重新评估没有给出任何结果而不抛出错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18483123/