【问题标题】:Customize regression tree nodes自定义回归树节点
【发布时间】:2018-06-26 19:52:00
【问题描述】:

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

有什么解决办法吗?

【问题讨论】:

  • 如果您向reproducible example 提供示例输入数据和用于运行模型的代码,会更容易为您提供帮助。这样我们就可以测试和验证可能的解决方案。
  • library('rpart') library('partykit') library('party') tmp <- read.table('Example.csv',header=FALSE,sep=' ') names(tmp) <- c('U','X','AC','AD','AY') ###############Regression tree############## tree.model <- rpart(U ~ X + AC + AD + AY,data=na.omit(tmp)) plot(as.party(tree.model))
  • 没人提示吗?

标签: r tree regression rpart party


【解决方案1】:

我建议不要在之后进行调整,而是保持变量名称同步。但要更改图中使用的标签,您只需更改 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)

然后我们可以简单地重新标记$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)

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

【讨论】:

    猜你喜欢
    • 2012-10-19
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2016-03-01
    相关资源
    最近更新 更多