我在这个递归特征消除中缺少什么?无论我尝试什么都出错

问题描述 投票:0回答:0

似乎找不到解决方法,尝试了 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?

我不知道我错过了什么。

r data-analysis feature-extraction feature-selection feature-engineering
© www.soinside.com 2019 - 2024. All rights reserved.