我在插入号中运行ctree方法模型,并尝试绘制得到的决策树。
这是我代码的主要部分。

fitControl <- trainControl(method = "cv", number = 10)
dtree <- train(
  Outcome ~ ., data = training_set,
  method = "ctree", trControl = fitControl
)


我试图绘制决策树,我用

plot(dtree$finalModel)


这给了我-



图片在这里不好,但是我得到的图像类似于该问题的答案中的第一个情节-Plot ctree using rpart.plot functionality

而且as.simpleparty函数不起作用,因为它不是rpart对象。

我想删除下面的条形图,只是在那些节点上得到1或0即可告诉我它是如何分类的。
由于dtree $ finalModel是二叉树对象,

prp(dtree$finalModel)


不起作用。

最佳答案

可以在不使用图形的情况下获得ctree图,而无需在底部使用图形,而在不使用插入符号的情况下使用结果标签。为了完整起见,我在下面包括了插入号代码。

首先为可重现的示例设置一些数据:

library(caret)
library(partykit)
data("PimaIndiansDiabetes", package = "mlbench")
head(PimaIndiansDiabetes)
      pregnant glucose pressure triceps insulin mass pedigree age diabetes
1        6     148       72      35       0 33.6    0.627  50      pos
2        1      85       66      29       0 26.6    0.351  31      neg
3        8     183       64       0       0 23.3    0.672  32      pos
4        1      89       66      23      94 28.1    0.167  21      neg
5        0     137       40      35     168 43.1    2.288  33      pos
6        5     116       74       0       0 25.6    0.201  30      neg


现在使用插入符号找到最佳的ctree参数:

fitControl <- trainControl(method = "cv", number = 10)
dtree <- train(
  diabetes ~ ., data = PimaIndiansDiabetes,
  method = "ctree", trControl = fitControl
)

dtree
Conditional Inference Tree

768 samples
  8 predictor
  2 classes: 'neg', 'pos'

No pre-processing
Resampling: Cross-Validated (10 fold)
Summary of sample sizes: 691, 691, 691, 692, 691, 691, ...
Resampling results across tuning parameters:

  mincriterion  Accuracy   Kappa
  0.01          0.7239747  0.3783882
  0.50          0.7447027  0.4230003
  0.99          0.7525632  0.4198104

Accuracy was used to select the optimal model using the largest value.
The final value used for the model was mincriterion = 0.99.


这不是理想的模型,但是我们继续吧。

现在使用带有插入符号的最佳参数的ctree包构建并绘制ctree模型:

ct <- ctree(diabetes ~ ., data = PimaIndiansDiabetes, mincriterion = 0.99)

png("diabetes.ctree.01.png", res=300, height=8, width=14, units="in")
plot(as.simpleparty(ct))
dev.off()


下图没有底部的图形,但在终端节点上具有结果变量(“ pos”和“ neg”)。必须使用非默认的高度和宽度值,以避免终端节点重叠。

r - 在插入符中绘制ctree方法决策树,删除下方不需要的条形图-LMLPHP

请注意,将ctree与插入符号一起使用时,应注意0、1个结果变量。
使用ctree方法的插入符号包默认使用整数或数字0,1数据构建回归模型。如果需要分类,将结果变量转换为因子。

关于r - 在插入符中绘制ctree方法决策树,删除下方不需要的条形图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53330709/

10-13 05:34