非常感谢您提前提供的帮助。我目前正在使用一个包含 794 个观测值和 1023 个变量的数据集。我正在尝试对数据进行某种特征选择。我最初的想法是做随机森林 rfe,但代码运行时间超过 24 小时,所以我停止了。我的下一个想法是再次使用 rfe,但使用偏最小二乘法,因为它的运行速度比随机森林模型快得多。当我这样做时,我收到以下错误:
"Error in { : task 1 failed - "wrong sign in 'by' argument".
我将在下面展示我的代码,但我知道这个错误来自 seq() 参数,其中有某种负值,但我的序列是 (1,1021, by =2)。我不认为那里有什么问题。代码运行大约 6-7 小时后,我得到了错误。我想我的问题有两个:
- 如果你们能想到任何更好的特征选择方法,我可以在几个小时内运行,而不是我正在做的事情,我会全力以赴。
- 如果您想不出更好的方法,您知道如何解决上述错误吗?真的很感谢所有的帮助。 注意:下面代码中的 predVars 是 chr[1:1022]。
train.control <- trainControl(method = "cv", number = 10)
#Recursive Feature Elimination Partial Least Squares
predVars <- names(Training)[!names(Training) %in% c("MOV")]
varSeq <- seq(1, 1021, by = 2)
ctrl <- rfeControl(method = "cv",
number = 10,
verbose = FALSE,
functions = caretFuncs)
Results <- rfe(x = Training[,predVars], y = Training$MOV, sizes = varSeq,
rfeControl = ctrl, method = "pls", tuneLength = 15,
preProc = c("center","scale"), trControl = train.control)