似乎找不到解决方法,尝试了 5 种不同的方法,但仍然出现相同的错误。
尝试执行'
rfe
'功能时遇到错误。
这是我的代码:
第一种方法:
在我的第一种方法中,我尝试直接使用带有所需参数的“
rfe
”函数。但是,仍然收到相同的错误消息。
> nfraud_rfe <- rfe(nfraud_features, nfraud_target, sizes = c(1:ncol(nfraud_features)), method = "glm", metric = "Accuracy")
Error in rfe.default(nfraud_features, nfraud_target, sizes = c(1:ncol(nfraud_features)), :
promise already under evaluation: recursive default argument reference or earlier problems?
第二种方法:
检查尺寸和属性,这会有所帮助。但是,问题似乎仍然存在。
dim(nfraud_features)
dim(nfraud_target)
class(nfraud_target)
length(nfraud_target)
nfraud_rfe <- rfe(nfraud_features, nfraud_target, sizes = c(1:ncol(nfraud_features)), method = "glm", metric = "Accuracy")
> dim(nfraud_features)
[1] 15419 32
> dim(nfraud_target)
NULL
> class(nfraud_target)
[1] "numeric"
> length(nfraud_target)
[1] 15419
第三种方法:
在第三种方法中,使用'
x
'和'y
'参数传递数据集和目标变量。但是,仍然显示相同的错误消息。
nfraud_rfe <- rfe(x = nfraud_features, y = nfraud_target, sizes = 1:ncol(nfraud_features), method = "glm", metric = "Accuracy")
Error in rfe.default(x = nfraud_features, y = nfraud_target, sizes = 1:ncol(nfraud_features), :
promise already under evaluation: recursive default argument reference or earlier problems?
第四种方法:
在第四种方法中,我创建了一个控制对象来将附加参数传递给“
rfe
”函数。但仍然没有运气:(
ctrl <- rfeControl(functions = caretFuncs,
method = "cv",
number = 10,
verbose = FALSE)
nfraud_rfe <- rfe(x = nfraud_features,
y = nfraud_target,
sizes = 1:ncol(nfraud_features),
method = "glm",
metric = "Accuracy",
control = ctrl)
Error in rfe.default(x = nfraud_features, y = nfraud_target, sizes = 1:ncol(nfraud_features), :
promise already under evaluation: recursive default argument reference or earlier problems?
第五种方法:
ctrl <- rfeControl(functions = caretFuncs,
method = "cv",
number = 10,
verbose = FALSE)
customMetric <- function(data, lev = NULL, model = NULL) {
accuracy <- sum(data$pred == data$obs) / nrow(data)
return(accuracy)
}
caretFuncs$summary <- customMetric
nfraud_rfe <- rfe(x = nfraud_features,
y = nfraud_target,
sizes = 1:ncol(nfraud_features),
method = "glm",
metric = "customMetric",
control = ctrl)
Error in rfe.default(x = nfraud_features, y = nfraud_target, sizes = 1:ncol(nfraud_features), :
promise already under evaluation: recursive default argument reference or earlier problems?
我不知道我错过了什么。