【发布时间】:2018-08-26 14:21:17
【问题描述】:
我想获取修剪后的 RPART 树中使用的功能的名称。我可以从绘制的修剪树上读取名称,但我更喜欢名称向量。有没有办法做到这一点?
【问题讨论】:
标签: r tree feature-selection names rpart
我想获取修剪后的 RPART 树中使用的功能的名称。我可以从绘制的修剪树上读取名称,但我更喜欢名称向量。有没有办法做到这一点?
【问题讨论】:
标签: r tree feature-selection names rpart
这需要一些努力,但你可以做到这一点。 由于您没有提供任何示例,因此我将 用一些内置数据来说明。
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 来获取每个
变量名一次。
【讨论】: