1

我尝试使用 J48 算法在 Weka 中的iris.arff数据集上运行一个简单的分类。我使用了 10 折的交叉验证,并且 - 如果我没记错的话 - J4​​8 的所有默认设置。结果是 96% 的准确率与 6 个错误分类的实例。

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


数据汇总


我的决策树

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

4

1 回答 1

0

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

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

记录一下:如果您使用完整数据集训练(并可视化)树,您的错误似乎更少,但您的模型实际上会过度拟合,并且获得的性能度量可能不切实际。因此,来自 CV 的结果更加有用,您应该可视化来自该模型的树。

于 2017-06-20T08:28:21.353 回答