rpart决策树中的rel错误和x错误之间有什么区别?

rpart决策树中的rel错误和x错误之间有什么区别?,r,tree,rpart,R,Tree,Rpart,我有一个来自UCI机器学习数据库的纯分类数据框架 我正在使用rpart根据患者是否在30天之前返回的新类别(一个新的失败类别)形成一个决策树 我正在为我的决策树使用以下参数 tree_model <- rpart(Failed ~ race + gender + age+ time_in_hospital+ medical_specialty + num_lab_procedures+ num_procedures+num_medications+number_outpatien

我有一个来自UCI机器学习数据库的纯分类数据框架

我正在使用rpart根据患者是否在30天之前返回的新类别(一个新的失败类别)形成一个决策树

我正在为我的决策树使用以下参数

    tree_model <- rpart(Failed ~ race + gender + age+ time_in_hospital+ medical_specialty + num_lab_procedures+ num_procedures+num_medications+number_outpatient+number_emergency+number_inpatient+number_diagnoses+max_glu_serum+ A1Cresult+metformin+glimepiride+glipizide+glyburide+pioglitazone+rosiglitazone+insulin+change,method="class", data=training_data, control=rpart.control(minsplit=2, cp=0.0001, maxdepth=20, xval = 10), parms = list(split = "gini"))
我看到,随着决策树分支的断开,相对误差在下降,但xerror在上升——我不理解这一点,因为我认为错误会减少分支越多,树就越复杂

我认为xerror是最重要的,因为大多数修剪树木的方法都会从根部修剪树木

有人能给我解释一下为什么修剪树木时,Xeror才是人们关注的焦点吗?
当我们总结决策树分类器的错误是什么时,错误是0.99231还是1.0031?

x错误是交叉验证错误(rpart内置了交叉验证)。您可以将rel_error、xerror和xstd这3列一起使用,以帮助您选择修剪树的位置

每行表示树的不同高度。一般来说,树中的级别越多,表示它在训练时的分类错误越小。但是,您有过度安装的风险。通常,交叉验证错误实际上会随着树的级别增加而增加(至少在“最佳”级别之后)

经验法则是选择最低级别,其中
rel_error+xstd

如果在输出上运行
plotcp
,它还将显示修剪树的最佳位置


另外,请参见。

我想在@Harold Ship的回答中添加一些信息。实际上,有三种方法可以选择修剪的最佳cp值:

  • 使用具有最小xerror的第一级(即最小nsplit)。只有当多个级别具有相同的最小xerror时,第一个级别才会生效。这是最常用的方法

  • 使用xerror在±1 xstd最小范围(xerror)内的第一级,即xerror 注意:修剪时不应使用rel_error

  • (很少使用的方法)使用Xeror±xstd与min(Xeror)±xstd重叠的第一级。i、 下限位于水平线或水平线以下的水平面


  • 这是一个概念问题,而不是编码问题。你应该找一个论坛来讨论这个话题。也许CrossValidated.com.你有计算相对误差的明确公式吗?或者如果你有相关的链接,让我知道
           CP     nsplit rel error  xerror     xstd
    1 0.00065883      0   1.00000  1.0000   0.018518
    2 0.00057648      8   0.99424  1.0038   0.018549
    3 0.00025621     10   0.99308  1.0031   0.018543
    4 0.00020000     13   0.99231  1.0031   0.018543