分类树模型中的根节点错误

Posted

技术标签:

【中文标题】分类树模型中的根节点错误【英文标题】:Root node error in classification tree model 【发布时间】:2016-06-08 04:53:23 【问题描述】:

我正在努力理解 rpart 中树分类的输出。我不明白“根节点错误”是如何计算的(printcp 函数的输出之一)。我在 rpart 包描述中也找不到它的定义。

以我加载泰坦尼克号数据为例:

library(titanic)
library(rpart)

tt<-titanic_train
table(tt$Survived)

所以我们有 549 人幸存,342 人死亡。共有 891 人。

fit<-rpart(Survived ~Pclass+Sex+Age+ SibSp+Parch+Fare+Embarked , data=tt)
printcp(dend) 

给出结果:

Regression tree:
rpart(formula = Survived ~ Pclass + Sex + Age + SibSp + Parch + 
    Fare + Embarked, data = tt)

Variables actually used in tree construction:
[1] Age    Fare   Pclass Sex    SibSp 

Root node error: 210.73/891 = 0.23651

n= 891 

        CP nsplit rel error  xerror     xstd
1 0.295231      0   1.00000 1.00538 0.016124
2 0.073942      1   0.70477 0.70896 0.033228
3 0.027124      2   0.63083 0.63570 0.031752
4 0.026299      3   0.60370 0.62105 0.032815
5 0.023849      4   0.57740 0.61154 0.032884
6 0.021091      5   0.55356 0.58294 0.032127
7 0.010000      6   0.53246 0.57097 0.032402

这里的根节点错误是指在添加任何节点之前开始的错误分类错误,对吗?因此,如果我假设每个人都幸存下来,我将在 891 个案例中的 342 个案例中出错,因此根节点错误应该是 342/891。在输出中我有 210.73/891。

如果能帮助我理解 210.73 在根节点错误中的含义以及如何根据这个泰坦尼克号数据示例计算它,我将不胜感激。找了一天也没找到解释。

提前感谢您的帮助。

【问题讨论】:

How to compute error rate from a decision tree? 可能重复...请在发布前搜索 Stack Overflow。 我看到了那个帖子。在这篇文章中没有解释什么是计算根节点错误以及如何计算根节点错误。只提到了我们使用它的用途(作为计算重新替换错误率和交叉验证错误率的输入)。 【参考方案1】:

根节点错误是第一个(根)拆分节点上正确排序的记录的百分比。

欲了解更多信息,请参阅Understanding the Outputs of the Decision Tree Tool。

【讨论】:

以上是关于分类树模型中的根节点错误的主要内容,如果未能解决你的问题,请参考以下文章

2021-07-13:恢复二叉搜索树。给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出

给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用

机器学习笔记-决策树

数据结构:树

2 树

450. 删除二叉搜索树中的节点