首页 文章

R caret nnet包

提问于
浏览
0

我有两个R对象如下 .

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

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

我想 Build 一个神经网络,我跑到命令之下 .

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 回答

  • 3

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

    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) .

相关问题