r语言 - 递归特征选择错误。 "invalid type (list) for variable 'y'" - SVM 和 KNN



我正在对具有990个观测值和1023个变量的数据运行一些模型。由于p>n我需要做一些功能选择。因此,我选择了递归特征选择。我有偏最小二乘、K近邻和支持向量机模型。当我在PLS模型上运行rfe((函数时,除了一个不推荐使用的tibble警告之外,我没有收到任何错误,我认为这不是什么大不了的。然而,当我运行SVM和KNN模型时,我会得到以下错误:

Error in { : task 1 failed - "invalid type (list) for variable 'y'"
In addition: There were 50 or more warnings (use warnings() to see the first 50)

这些警告再次被弃用,但我一辈子都无法弄清楚无效类型的来源,因为PLS运行得很好。请参阅下面的代码:

#Recursive Feature Elimination Partial Least Squares
predVars <- names(Training)[!names(Training) %in% c("MOV")]
ctrl <- rfeControl(method = "cv",
number = 10,
verbose = FALSE,
functions = caretFuncs) 
#Partial Least Squares Model
set.seed(1211)
PLS_Model <- rfe(x = Training[,predVars], y = Training$MOV, sizes = c(2:25, 50, 75, 100,
125, 150, 175, 200),
rfeControl = ctrl, method = "pls", tuneLength = 15,
preProc = c("center","scale"), trControl = train.control)
#K-Nearest Neighbors Model
set.seed(1211)
KNNModel <- rfe(x = Training[,predVars], y = Training$MOV, sizes = c(2:25, 50, 75, 100, 125, 150, 175, 200),
rfeControl = ctrl, method = "knn",tuneLength = 10, preProc = c("center", "scale"),trControl = train.control)
#SVM Model
set.seed(1211)
SVM_Model <- rfe(x = Training[,predVars], y = Training$MOV, sizes = c(2:25, 50, 75, 100, 125, 150, 175, 200),
rfeControl = ctrl, method = "svmRadial", tuneLength = 15, 
preProc = c("center", "scale"), trControl = train.control)

请注意,predVars是一个chr[1:1022]。非常感谢大家在这方面的帮助。

嘿,伙计们,所以我能解决这个问题。出于某种原因,在KNN和SVM模型上,当我为基于公式的MOV~.更改x=y=自变量时,它运行得非常好这些模型现在运行得很好。

最新更新