rfe.defau中的R错误:“x和y中的样本数应该相同”

时间:2017-03-25 21:52:21

标签: r r-caret rfe

我无法让插入符号工作。从已知的开始,http://machinelearningmastery.com/feature-selection-with-the-caret-r-package/中的示例完美无缺。

当我替换我自己的数据集时,它失败了:

function ValidateInput() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

if (name != '' && email != '') {
if (email.match(emailReg)) 
alert("Not a real Email address!");
return false;
}
alert("Missing feilds!");
return false;
}

据我所知,x和y中的样本行数相同;

> results <- rfe(x, y, sizes=c(1:5), rfeControl=control)
Error in rfe.default(x, y, sizes = c(1:5), rfeControl = control) : 
  there should be the same number of samples in x and y

详情请见下文。

我查看了类似的问题,例如R rfe function "caret" Package error: there should be the same number of samples in x and yR trying to get caret / rfe to work。后者是相关的,但它似乎没有帮助。我已经尝试将我的y转换为像

这样的向量
> nrow(x)
[1] 691231
> nrow(y)
[1] 691231

> y <- as.vector(y)

但错误仍然存​​在。 当然我做了一些愚蠢的事情,我只是看不出我的错误。任何帮助表示赞赏。

: - )

YARC

----------------------细节--------------

------ --------脚本

> y <- as.vector(as.list(y))

------ ------特征

library(feather)
library(mlbench)
library(caret)

path <- "faultclass.feather"
df <- read_feather(path)

set.seed(7)
control <- rfeControl(functions=rfFuncs, method="cv", number=10)
x <- subset(df,select=-c(fault))
y <- df["fault"]*1
results <- rfe(x, y, sizes=c(1:5), rfeControl=control)
print(results)
predictors(results)
plot(results, type=c("g", "o"))

1 个答案:

答案 0 :(得分:0)

我有同样的问题,最终我通过使用

让它工作
y = as.vector(unlist(c(y)))

我不确定为什么这与

有所不同
y = as.vector(y)

但这对我有用。