当我尝试从here提取的“caret”包中的rfe示例时,我一直收到此错误

  Error in rfe.default(d[1:2901, ], c(1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3,  :
  there should be the same number of samples in x and y

这个问题has been asked,但是在这种情况下它的解决方案不适用。

这是代码:
set.seed(7)
# load the library
library(mlbench)
library(caret)

# load the data
d <- read.table("d.dat")

# define the control using a random forest selection function
control <- rfeControl(functions=rfFuncs, method="cv", number=10)

# run the RFE algorithm
results <- rfe(d[1:2901, ],   c(1,1,1,1, 1, 1,2,2,2, 3 ,3,3,4, 4, 4),   sizes=c(1:2901), rfeControl=control)

# summarize the results
print(results)

数据集是2901行(特征)和15列的数据框。向量c(1,1,1,1,1,1,2,2,2,3,3,3,4,4,4)是特征的预测因子。

我将哪个参数设置错误?

最佳答案

有一个约定,行是观察值,列是要素。您向rfe提供 x 参数的方式意味着您有2901个观测值,这导致15个结果不匹配。在数据上使用转置函数t(如果有15列的话)。
y = c(1,1,1...)向量不应称为预测变量。它是因变量或结果。第一个参数是预测变量的data.frame。

关于r - R rfe函数“插入符”封装错误:x和y中的样本数应相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30441657/

10-12 16:30