我已经使用weka构建了一个分类模型。我有两个类,即{spam,non-spam}。应用stringtowordvector过滤器后,我获得了19000条记录的10000个属性。然后我使用liblinear库来构建模型,它给我F-score如下: 垃圾邮件94% 非垃圾-98%
当我使用相同模型预测新实例时,它会将所有实例预测为垃圾邮件。 此外,当我尝试使用与训练集相同的测试集时,它也会将所有测试集预测为垃圾邮件。我精神上很疲惫,无法找到问题。任何帮助都将受到赞赏。
答案 0 :(得分:0)
我经常这样做也错了。然后我观看了这段视频,以提醒自己它是如何完成的:https://www.youtube.com/watch?v=Tggs3Bd3ojQ其中一位Weka开发人员/建筑师Witten教授展示了如何使用 FilteredClassifier (这反过来又是配置为正确加载训练数据集和测试集上的StringToWordVector过滤器。
这显示了weka 3.6,weka 3.7。可能会略有不同。
ZeroR为您提供什么?如果它接近100%,你知道任何分类算法也不应该太远。
为什么要针对F-Measure进行优化?只是问问而已。我从来没有用过这个,也不太了解它。 (我会针对" Precision"指标进行优化,假设您拥有的垃圾邮件数量超过非垃圾邮件数量。)