我有一个来自UCI机器学习数据库的纯分类数据框。https://archive.ics.uci.edu/ml/datasets/Diabetes+130-US+hospitals+for+years+1999-2008
我正在使用rpart根据新的类别(患者是否在30天内返回,即新的失败类别)形成决策树。
我正在使用以下参数进行决策树:
打印结果如下:
我看到随着决策树的分支,相对误差在下降,但xerror在上升 - 我不理解为什么误差会随着树的复杂度增加而减少。
我正在使用以下参数进行决策树:
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"))
打印结果如下:
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
我看到随着决策树的分支,相对误差在下降,但xerror在上升 - 我不理解为什么误差会随着树的复杂度增加而减少。
我认为xerror最重要,因为大多数剪枝方法都会从根节点开始剪枝。
为什么在修剪树时要关注xerror?当我们总结决策树分类器的误差时,误差是0.99231还是1.0031?