Weka 预测同一类
Posted
技术标签:
【中文标题】Weka 预测同一类【英文标题】:Weka predicting same class 【发布时间】:2013-09-25 15:30:33 【问题描述】:我正在使用 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 个不同的类,并且测试文件中的实例中包含的信息在其中没有相同的值。那么,为什么会发生这种情况? 非常感谢。
【问题讨论】:
【参考方案1】:您的 J48 决策可能树是单个节点,它只是表示每个实例都属于“主题”类。如果您使用 Weka gui 执行此过程,您可以右键单击结果缓冲区中的条目并选择“可视化树”。
如果您发现树确实是单个节点,则可能是这种方式,因为您可能正在使用不平衡的数据集。对于不平衡的数据集,J48 修剪程序可能会从删除导致少数类的分支中受益,并简单地将所有内容预测为我猜测的多数类“主题”。这是不平衡数据集的常见问题。您可以尝试使用 SMOTE 作为预处理程序(here 是一个很好的 SMOTE 教程)。
如果您没有发现树是单个节点,您可以尝试手动进行一些预测,并可能得出关于为什么每个测试实例都归类为“主题”的结论。
【讨论】:
你的回答真的很有帮助。谢谢你。如果我的技术是 10 乘以 10 CV 而不是提供像 OP 这样的测试数据集,可以吗?以上是关于Weka 预测同一类的主要内容,如果未能解决你的问题,请参考以下文章