【问题标题】:R: Verbose Decision Tree PostscriptR:详细决策树后记
【发布时间】:2018-06-11 12:46:53
【问题描述】:

我正在为一个项目制作决策树。我正在使用 R,但如果我们愿意,我们可以使用 SAS。书中有一张决策树的图片,我认为它看起来很棒(我猜决策树看起来很棒):

是否可以在 R 中做类似的事情?我一直在使用 post() 函数,到目前为止我发现要做的就是使用pretty = 0 来防止它缩写东西。我的仍然只是每个圆圈中带有 XXXX/XXXX 的圆圈。

我查看了文档,但找不到任何可以使其更详细的内容。文档总是说“...... postscript 函数的其他参数”。但实际上并没有列出其他论点。我不确定这个决策树是否来自 SAS、R 或其他一些随机语言。我们正在使用的书是 Data Mining Statistics for Decision Making;我不喜欢这本书。我主要是找到外部资源来解释这些概念。这是我唯一无法从这本书中自己弄清楚的事情。

【问题讨论】:

  • 如果您从rpart 获取决策树,则同名包中的rpart.plot 函数会产生非常相似的结果。

标签: r tree decision-tree


【解决方案1】:

具有视觉吸引力的树形图的一个选项是来自rattle 包的fancyRpartPlot()。它并不完全复制 SAS 输出,但它比默认绘图更具视觉吸引力。

例如,我们将使用 caretrattle 在 iris 数据集上运行 rpart 模型:

library(caret)
library(rattle)
inTrain <- createDataPartition(y = iris$Species,
                               p = 0.7,
                               list = FALSE)
training <- iris[inTrain,]
testing <- iris[-inTrain,]
modFit <- train(Species ~ .,method = "rpart",data = training)
fancyRpartPlot(modFit$finalModel)

...和输出:

可以使用sub=" " 参数删除图表下方的子标题fancyRpartPlot()

相比之下,默认绘图是使用以下代码生成的。

 # default plot
 plot(modFit$finalModel,uniform=TRUE, margin=.3)
 text(modFit$finalModel,use.n=TRUE,all=TRUE, cex=.9)

...和输出:

另一种方法是rpart.plot 包,如 OP 的 cmets 中所述。它包括大量可配置的选项。要打印计数和百分比,请使用 extra= 参数。

# use rpart.plot package
library(rpart.plot)
rpart.plot::rpart.plot(modFit$finalModel,extra=101)

...和输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-18
    • 2014-08-21
    • 2014-08-20
    • 2018-07-24
    • 1970-01-01
    • 2014-05-09
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多