【问题标题】:Names of selected features in pruned RPART tree修剪后的 RPART 树中选定特征的名称
【发布时间】:2018-08-26 14:21:17
【问题描述】:

我想获取修剪后的 RPART 树中使用的功能的名称。我可以从绘制的修剪树上读取名称,但我更喜欢名称向量。有没有办法做到这一点?

【问题讨论】:

    标签: r tree feature-selection names rpart


    【解决方案1】:

    这需要一些努力,但你可以做到这一点。 由于您没有提供任何示例,因此我将 用一些内置数据来说明。

    library(rpart)
    libary(partykit)        ## for nicer plotting
    IRP = rpart(Species ~ ., data=iris)
    plot(as.party(IRP))
    

    获取用于拆分的变量的一种方法 是通过函数labels

    labels(IRP)
    [1] "root"               "Petal.Length< 2.45" "Petal.Length>=2.45"
    [4] "Petal.Width< 1.75"  "Petal.Width>=1.75"
    

    很容易忽略第一个(根)节点,但我们需要 清理其他拆分的文本。我们可以使用sub 和一个正则表达式来获取变量名。

    VPat = paste0(".*(", paste(colnames(iris), collapse="|"), ").*")
    sub(VPat,"\\1", labels(IRP)[-1])
    [1] "Petal.Length" "Petal.Length" "Petal.Width"  "Petal.Width" 
    

    如果你愿意,你可以申请 unique 来获取每个 变量名一次。

    【讨论】:

      猜你喜欢
      • 2012-12-17
      • 2016-10-09
      • 2020-07-27
      • 2017-02-10
      • 2017-06-03
      • 2016-01-27
      • 2014-09-20
      • 2017-07-20
      • 2014-06-10
      相关资源
      最近更新 更多