R caret nnet包

时间:2015-04-16 16:37:33

标签: r r-caret nnet

我有两个R对象,如下所示。

矩阵“datamatrix” - 200行和494列:这些是我的x变量

dataframe Y. Y $ V1是我的Y变量。我已将V1列转换为我正在构建分类模型的因素。

我想建立一个神经网络,我跑到命令之下。

model <- train(Y$V1 ~ datamatrix, method='nnet', linout=TRUE, trace = FALSE,
               #Grid of tuning parameters to try:
               tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1))) 

我收到了错误 - " argument "data" is missing, with no default"

插入符号包有没有办法理解我在一个R对象中有我的X变量而在另一个中有我的X变量?我不想合并两个数据对象,然后编写一个公式,因为公式太长了

Y~x1+x2+x3.................x199+x200....x493+x494

1 个答案:

答案 0 :(得分:3)

通过向argument "data" is missing调用添加data = datamatrix参数来解决train错误。我会这样做的方式如下:

datafr <- as.data.frame(datamatrix)

# V1 is the first column name if dimnames aren't specified
datafr$V1 <- as.factor(datafr$V1)

model <- train(V1 ~ ., data = datafr, method='nnet', 
               linout=TRUE, trace = FALSE,
               tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1))) 

现在您不必单独提取响应变量。

.标识符允许包含datafr中的所有变量(有关详细信息,请参阅here)。