我有一个矩阵X
和向量Y
,我将其用作rfe
包中caret
函数的参数。它很简单:
我得到一个奇怪的错误,我无法解读:
承诺已经在评估中:递归默认参数引用或早期问题?
编辑: 以下是我数据前5行的可重现示例:
library(caret)
X_values = c(29.04,96.57,4.57,94.23,66.81,26.71,69.01,77.06,49.52,97.59,47.57,64.07,24.25,11.27,77.30,90.99,44.05,30.96,96.32,16.04)
X = matrix(X_values, nrow = 5, ncol=4)
Y = c(5608.11,2916.61,5093.05,3949.35,2482.52)
rfe(X, Y)
我的R版本是3.2.3。 Caret包装是6.0-76。
有人知道这是什么吗?
答案 0 :(得分:4)
您的代码存在两个问题。
rfe
抛出这样一个神秘的错误信息;它确实很难调试。)以下作品:
library(caret)
X_values = c(29.04,96.57,4.57,94.23,66.81,26.71,69.01,77.06,49.52,97.59,47.57,64.07,24.25,11.27,77.30,90.99,44.05,30.96,96.32,16.04)
X = matrix(X_values, nrow = 5, ncol=4)
Y = c(5608.11,2916.61,5093.05,3949.35,2482.52)
ctrl <- rfeControl(functions = lmFuncs)
colnames(X) <- letters[1:ncol(X)]
set.seed(123)
rfe(X, Y, rfeControl = ctrl)
我为rfe选择了一个线性模型。
警告消息的原因是交叉验证期间数据中的观察次数较少。您可能还想设置sizes
参数以获得有意义的特征消除。