我正在尝试使用 Caret 为“knn”和“svmRadial”方法执行 varImp 函数。我获得了两个模型(knn 和 svmRadial),但是当我尝试使用它们执行 varImp 函数时,我的屏幕上会出现以下错误消息:
model.frame.default 中的错误(公式 = y ~ x,na.action = na.omit,drop.unused.levels = TRUE):变量“y”的类型(列表)无效
knn 模型模型和 varImp 函数的 R 块如下:
KNN模型
set.seed(9)
grid_knn <- expand.grid(.k = c(3, 5, 7, 10, 15))
modelo_knn <- train(PER~., data=datos_entrenamiento, method="knn", preProc = c("center", "scale"), metric=metric,tuneGrid=grid_knn, trControl=control)
modelo_knn
输出
k-Nearest Neighbors
1433 samples
9 predictor
Pre-processing: centered (28), scaled (28)
Resampling: Cross-Validated (5 fold, repeated 5 times)
Summary of sample sizes: 1146, 1146, 1148, 1146, 1146, 1146, ...
Resampling results across tuning parameters:
k RMSE Rsquared MAE
3 292.8288 0.3743854 37.60947
5 300.1049 0.3013125 38.34929
7 290.5655 0.2852039 37.64221
10 280.7362 0.2525091 37.06593
15 278.3909 0.1788722 38.38813
RMSE用于使用最小值选择最佳模型。用于模型的最终值为k = 15
.
带有 Knn 模型的 varImp 函数
var_imp_knn <- varImp(modelo_knn)
var_imp_knn
输出
model.frame.default 中的错误(公式 = y ~ x,na.action = na.omit,drop.unused.levels = TRUE):变量“y”的类型(列表)无效
谁能帮我理解这个错误的原因以及如何解决它?
此致