为啥我的决策树没有节点? (C5.0)

Posted

技术标签:

【中文标题】为啥我的决策树没有节点? (C5.0)【英文标题】:Why my decision tree have not node? (C5.0)为什么我的决策树没有节点? (C5.0) 【发布时间】:2020-06-03 14:48:28 【问题描述】:

我有 6 个属性的 204 个数据。

当我使用此脚本创建包含所有数据的模型时,model = C5.0(dataset1[,-7], dataset1[,7]), 结果给我没有像下图这样的节点。

但是,如果我在这个脚本中只使用 100 个数据,model = C5.0(dataset1[1:100,-7], dataset1[1:100,7]),结果会给我一个很好的决策树,如下图所示。

有什么问题?问题出在数据上吗? 谢谢。

【问题讨论】:

【参考方案1】:

检查树木的展示,很容易看出发生了什么。 仅使用 100 点的第二个模型并不比第一个更好。 当您向 C5.0 提供更多数据时,它正确确定了一个更简单的模型 是优越的。看看结果。

第一棵树(所有 204 分)预测一切都是 Lancar 给予的 错误率为 27%(204 个错误中有 55 个错误)。

第二棵树的错误率是多少?

节点 2 预测 Lancar 55 个点,错误率为 25.5%(14 个错误)。 节点 4 预测 Lancar 25 个点,错误率为 28.0%(7 个错误)。 节点 6 预测 Macet 的 8 个点,错误率为 50.0%(4 个错误)。 节点 7 预测 Macet 为 12 个点,错误率为 41.7%(5 个错误)。 总错误 100 个中有 30 个或 30.0% - 比 27% 的错误率更差 对于更简单的模型。 C5.0 简单地确定了可用的最佳模型是预测所有点都属于多数类(Lancar)。

【讨论】:

以上是关于为啥我的决策树没有节点? (C5.0)的主要内容,如果未能解决你的问题,请参考以下文章

决策树算法之C5.0

C5.0 决策树 - 名为 exit 的 c50 代码,值为 1

为啥我们不能在决策树中随机启动根节点?

使用reactiveValues()在Shiny中绘制动态C5.0决策树

为啥在导出的决策树中只​​标记父节点的边缘

R语言应用实战-基于R的C4.5算法和C5.0算法原理解析及应用案例