【问题标题】:How to get properties of rpart (CART) decision tree in R?如何在 R 中获取 rpart (CART) 决策树的属性?
【发布时间】:2016-07-24 04:47:56
【问题描述】:

我有以下rpart:

library("partykit")
library("rpart")
res = rpart(Species ~., data = iris)
pres <- as.party(res)

> pres

Model formula:
Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width

Fitted party:
[1] root
|   [2] Petal.Length < 2.45: setosa (n = 50, err = 0.0%)
|   [3] Petal.Length >= 2.45
|   |   [4] Petal.Width < 1.75: versicolor (n = 54, err = 9.3%)
|   |   [5] Petal.Width >= 1.75: virginica (n = 46, err = 2.2%)

Number of inner nodes:    2
Number of terminal nodes: 3

我想把每个拆分节点和它的值按以下顺序写出来:

{Petal.Length 2.45 {Petal.Width 1.75} } 

每个级别与更高级别之间用 { 分隔。 我想做的和 J48 here 的做法非常相似。

【问题讨论】:

    标签: r rpart party


    【解决方案1】:

    解决办法是:

    library("partykit")
    pres <- as.party(res)
    
    
    partykit:::.list.rules.party(pres)
    
    nam <- names(pres$data)
    tr <- as.list(pres$node)
    str <- "("
    update_str <- function(x) {
      if(is.null(x$kids)) {
        str <<- paste(str, ")")
      } else {
        str <<- paste(str, nam[x$split$varid], x$split$breaks, "(")
        for(i in x$kids) update_str(tr[[i]])
      }
    }
    update_str(tr[[1]])
    > str
    [1] "( Petal.Length 2.45 ( ) Petal.Width 1.75 ( ) )"
    

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 2015-06-28
      • 2011-05-23
      • 2021-05-30
      • 2015-07-14
      • 2015-01-08
      • 2020-10-05
      • 2017-09-08
      • 2017-11-26
      相关资源
      最近更新 更多