1

我正在使用weka来预测某些实例的类。为此,我有一个培训文件和一个测试文件。保存通过使用 J48 分类器运行 10 倍交叉验证测试获得的模型后,我使用此模型来预测测试文件中实例的类。问题是预测的类对于所有实例都是相同的。

=== Predictions on test data ===

 inst#     actual  predicted error prediction 
     1    34:BALT    1:Theme   +   0.216 
     2    34:BALT    1:Theme   +   0.216 
     3    34:BALT    1:Theme   +   0.216 
     4    34:BALT    1:Theme   +   0.216 
     5    34:BALT    1:Theme   +   0.216 
     6    34:BALT    1:Theme   +   0.216 
     7    34:BALT    1:Theme   +   0.216 
     8    34:BALT    1:Theme   +   0.216 
     9    34:BALT    1:Theme   +   0.216 
    10    34:BALT    1:Theme   +   0.216 
    11    34:BALT    1:Theme   +   0.216 
    12    34:BALT    1:Theme   +   0.216 
    13    34:BALT    1:Theme   +   0.216 
    14    34:BALT    1:Theme   +   0.216 
and so on....

模型可以预测 14 个不同的类,并且测试文件中的实例中包含的信息中没有相同的值。那么,为什么会发生这种情况?非常感谢。

4

1 回答 1

1

您的 J48 决策树可能是单个节点,它简单地说每个实例都属于“主题”类。如果您使用 Weka gui 执行此过程,您可以右键单击结果缓冲区中的条目并选择“可视化树”。

如果您发现树确实是单个节点,则可能是这种方式,因为您可能正在使用不平衡的数据集。对于不平衡的数据集,J48 修剪程序可能会从删除导致少数类的分支中受益,并简单地将所有内容预测为我猜测的多数类“主题”。这是不平衡数据集的常见问题。您可以尝试使用 SMOTE 作为预处理程序(这里有一个很好的 SMOTE 教程)。

如果您没有发现树是单个节点,您可以尝试手动进行一些预测,并可能得出关于为什么每个测试实例都归类为“主题”的结论。

于 2013-09-23T05:17:21.160 回答