获得 string/character rpart 回归树的表示
get string/character representation of rpart regression tree
我正在使用这样的代码:
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
在屏幕上将模型打印为 string/character:
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 *
有没有办法明确地获得实际的 string/character 表示?我试过这样的事情:
df <- data.frame(test = as.character(model))
将模型作为字符串写入数据框。它打印太多...
以下对我有用:
model_text <- capture.output(print(model))
OutputDataSet <- data.frame(model_text = model_text, stringsAsFactors=FALSE)
不确定预期的输出,但我们可以将模型保存为字符,如下所示:
model <- quote(fit_data$finalModel)
然后我们可以在需要时简单地调用它,如下所示:
eval(model)
我正在使用这样的代码:
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
在屏幕上将模型打印为 string/character:
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 *
有没有办法明确地获得实际的 string/character 表示?我试过这样的事情:
df <- data.frame(test = as.character(model))
将模型作为字符串写入数据框。它打印太多...
以下对我有用:
model_text <- capture.output(print(model))
OutputDataSet <- data.frame(model_text = model_text, stringsAsFactors=FALSE)
不确定预期的输出,但我们可以将模型保存为字符,如下所示:
model <- quote(fit_data$finalModel)
然后我们可以在需要时简单地调用它,如下所示:
eval(model)