支持向量机中没有关于变量重要性的信息.所以,我正在使用变量的排列来生成变量重要性图,借助这个answer,比如
library(vip)
library(MASS)
library(tidymodels)
data(Boston, package = "MASS")
df <- Boston
#Split the data into train and test set
set.seed(7)
splits <- initial_split(df)
train <- training(splits)
test <- testing(splits)
#Preprocess with recipe
rec <- recipe(medv~.,data=train) %>%
step_normalize(all_predictors())
svm_spec <- svm_rbf(margin = 0.0937, cost = 26.7, rbf_sigma = 0.0208) %>%
set_engine("kernlab") %>%
set_mode("regression")
#Putting into workflow
svr_fit <- workflow() %>%
add_recipe(rec) %>%
add_model(svm_spec) %>%
fit(data = train)
svr_fit %>%
pull_workflow_fit() %>%
vip(method = "permute", nsim = 5,
target = "medv", metric = "rmse",
pred_wrapper = kernlab::predict, train = train)
但它返回给我以下错误:
错误
metric_fun()
: !estimate
应该是一个数字向量,而不是一个数字矩阵.
与此同时,pull_workflow_fit
也是不受欢迎的.应该用什么来代替pull_workflow_fit
?