【问题标题】:get string/character representation of rpart regression tree获取 rpart 回归树的字符串/字符表示
【发布时间】:2019-07-17 17:12:02
【问题描述】:

我正在使用这样的代码:

library(datasets)
library(rpart)
library(caret)

options(warn=-1)
set.seed(42)


x <- subset(iris, select=-c(Species, Sepal.Length))

fitControl <- trainControl(
     method = "repeatedcv"
     , number = 10
     , repeats = 10
 )

fit_data <- caret::train(
     x = x
     , y = iris$Sepal.Length
     , method = 'rpart'
     , trControl = fitControl
     #, control=rpart.control(minsplit=3, minbucket=1, cp=0.001)
     #, metric = "ROC"
     #, tuneLength = 20
    , control = rpart.control(maxdepth = 3) #  minbucket=20
)

model <- fit_data$finalModel
model

最后一行:

model

在屏幕上将模型打印为字符串/字符:

n= 150 

node), split, n, deviance, yval
      * denotes terminal node

1) root 150 102.1683000 5.843333  
  2) Petal.Length< 4.25 73  13.1391800 5.179452 *
  3) Petal.Length>=4.25 77  26.3527300 6.472727  
    6) Petal.Length< 6.05 68  13.4923500 6.326471 *
    7) Petal.Length>=6.05 9   0.4155556 7.577778 *

有没有办法明确地获取实际的字符串/字符表示?我试过这样的事情:

 df <- data.frame(test = as.character(model))

将模型作为字符串写入数据帧。打印太多了...

【问题讨论】:

  • 模型没有运行。好吧,它确实有错误,你能提供一个可重现的例子吗?!
  • 我正在使用虹膜套装 - 非常可重现恕我直言...
  • 请运行它,看看它会产生什么。先去掉警告部分。
  • 很抱歉,我刚刚做了,它工作正常 - 您的错误信息是什么?
  • 我很确定有你的名声的人使用 iris 得到一个简单的回归树来工作?好吧,它对我有用,对不起......

标签: r r-caret rpart


【解决方案1】:

不完全确定预期的输出,但我们可以将模型保存为字符,如下所示:

model <- quote(fit_data$finalModel)

然后我们可以在需要时简单地调用它,如下所示:

eval(model)

【讨论】:

  • 感谢这实际上比我的答案更好,并且在 sql server 中工作。谢谢!
  • 很抱歉,这似乎不起作用。 eval 仍然会产生一个 rpart 类型的对象。如果有意义的话,基本上我想在这个对象上执行类似 toString() 的东西?
  • btw toString(model) 不会产生预期的结果 - 请参阅修改后的问题。
  • 谢谢 - 我仍然以对象而不是打印在“屏幕”上的字符串结束
  • 简单地将列中的一行附加到数据框 - 将模型作为字符串从存储过程中获取是一种技巧
【解决方案2】:

以下对我有用:

model_text <- capture.output(print(model))
OutputDataSet <- data.frame(model_text = model_text, stringsAsFactors=FALSE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2014-02-08
    相关资源
    最近更新 更多