我正在尝试使用遗传算法或模拟退火来使用插入特征选择,并且在两种情况下我都收到相同的错误消息。
我尝试了非常简单的输入数据帧的gafs和safs的最基本形式。
> library(caret)
> head(n)
id group hs.grad race gender age m.status political n.kids income score time1 time2 time3
1 ID.1 control no white female 37 divorced other 1 96000 0.71 99.02 101.72 100.07
2 ID.2 control yes white male 34 divorced independent 0 16000 -0.43 43.78 45.54 45.79
3 ID.3 treat yes white female 39 never democrat 2 13000 1.80 100.23 101.01 103.00
4 ID.4 control yes white female 29 married independent 4 12000 -0.05 95.64 99.61 96.38
5 ID.5 control yes white female 36 married democrat 0 7000 -0.50 47.25 47.25 49.11
6 ID.6 control yes asian male 19 never republican 0 18000 0.00 77.66 78.43 85.68
> obj <- gafs(x=n[,1:8],
+ y=n$time3,
+ iters = 10)
Error in gafs.default(x = n[, 1:8], y = n$time3, iters = 10) :
promise already under evaluation: recursive default argument reference or earlier problems?
如果遇到类似问题,有人可以分享经验,我很感激(BTW,n只有14个观察结果,尽管我尝试过很多不同的数据框并得到相同的错误信息)
谢谢
答案 0 :(得分:1)
我认为问题在于您没有提供必要的gafsControl
参数。请参阅documentation example中的gafs
来电:
## Not run:
set.seed(1)
train_data <- twoClassSim(100, noiseVars = 10)
test_data <- twoClassSim(10, noiseVars = 10)
## A short example
ctrl <- gafsControl(functions = rfGA,
method = "cv",
number = 3)
rf_search <- gafs(x = train_data[, -ncol(train_data)],
y = train_data$Class,
iters = 3,
gafsControl = ctrl)