当我尝试从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/