Weka

时间:2017-06-09 14:50:54

标签: weka j48

我尝试使用J48算法对Weka中的 iris.arff 数据集进行简单分类。我使用10倍的交叉验证 - 如果我没有错 - - J48的所有默认设置。 结果是6个错误分类的实例的准确率为96%。

这是我的问题:根据this,树形可视化中的第二个数字是每个叶子中错误分类的实例的数量,但是为什么它们的总和不是6而是3?

Data summary

My decision tree

编辑:使用不同的测试选项运行算法我在准确性(因此错误数量)方面获得了不同的结果,但是当我可视化树时,我总是得到具有相同3个错误的相同树。我仍然无法解释原因。

1 个答案:

答案 0 :(得分:0)

树形可视化中的第二个数字不是每个叶子中错误分类的实例的数字 - 它是那些错误分类的实例的总权重 。 你有没有用0.5而不是1来衡量其中一些实例?

另一个选择是你实际上正在执行两个不同的模型。您可以使用完整的训练集来构建分类器(classifier.buildClassifier(instances)),另一个使用10个训练/测试折叠运行交叉验证(eval.crossValidateModel(...))。第一个模型将生成具有较少错误的可视化树(较大的训练集),而来自CV的第二个模型生成具有更多错误的输出统计数据。这可以解释为什么在更改测试集时会获得不同的统计信息,但仍然是在完整集上构建的相同树。

对于记录:如果使用完整数据集训练(并可视化)树,您将看起来错误较少,但您的模型实际上将被过度拟合,并且获得的性能测量可能不太现实。因此,CV的结果更有用,您应该从该模型中可视化树。