自定义回归树节点

时间:2018-01-17 20:28:37

标签: r tree regression rpart party

我使用rpart包构建了以下回归树。我不得不将变量重命名为字母顺序,因为原始名称很长。 现在我已经完成了分析,我希望将(相关的)4个分割重新重命名为原始的长名称。 如何访问拆分标签?我知道这对于rpart.plot包是可行的,但我想坚持partykit绘图布局,因为我想在节点中有盒子图。

任何解决方案?

enter image description here

1 个答案:

答案 0 :(得分:2)

我建议不要在事后调整,但保持变量名同步。但是,要更改图中使用的标签,您只需更改names(party_object$data)

作为一个简单的可重复示例,请考虑iris数据:

library("rpart")
library("partykit")
data("iris", package = "datasets")
names(iris)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

现在我们将数据中的名称更改为缩写:

names(iris) <- c("SL", "SW", "PL", "PW", "S")

然后展开rpart()树并将其转换为party

rp <- rpart(S ~ SL + SW + PL + PW, data = iris)
py <- as.party(rp)
plot(py)

tree1

然后我们可以简单地重新标记$data中的变量(注意顺序已更改,响应首先列出)并再次绘制:

names(py$data)
## [1] "S"  "SL" "SW" "PL" "PW"
names(py$data) <- c("species", "sepal_length", "sepal_width", "petal_length", "petal_width")
plot(py)

tree2

对于这个经过调整的party对象,大多数事情都应该完全正常。但是,formuladata中的变量名称现在不同步。这可能会导致某些设置出现问题。但绘图应该没问题。