我最近开始研究我正在开发的模型的插入符号包。我正在使用最新版本。作为第一步,我决定将其用于特征选择。我使用的数据有大约 760 个特征和 10k 个观察值。我根据网上的培训资料创建了一个简单的函数。不幸的是,我一直收到错误,因此该过程永远不会完成。这是产生错误的代码。在此示例中,我使用了一小部分功能。我从全套功能开始。我还更改了子集、折叠次数和重复次数,但无济于事。我知道如果没有数据就很难追查问题。我共享了一小部分数据(以 r 对象格式,如下所示)。如果您无法从那里获取文件,请尝试此链接。
它总是产生这个错误:
{ 中的错误:任务 1 失败 - “替换长度为零”
caretFeatureSelection <- function() {
library(caret)
library(mlbench)
library(Hmisc)
set.seed(10)
lr.features = c("f2", f271","f527","f528","f404", "f376", "f67", "f670", "f281", "f333", "f13", "f282", "f599",
"f597", "f68", "f629", "f378", "f230", "f229", "f273", "f768", "f406", "f630",
"f596", "f598", "f413", "f412", "f332", "f377", "f766", "f767", "f775", "f10", "f442")
trainDF <- readRDS(file='trainDF.rds')
trainDF <- trainDF[trainDF$loss>0,]
trainDF$lossProb <- trainDF$loss/100
y <- trainDF[,'lossProb']
x <- trainDF[,names(trainDF) %in% lr.features]
rm(trainDF)
subsets <- c(1:5, 10, 15, 20, 25)
ctrl <- rfeControl(functions = lrFuncs,
method = "repeatedcv",
repeats = 1,
number=5)
lrProfile <- rfe(x, y,
sizes = subsets,
rfeControl = ctrl)
lrProfile
}