【问题标题】:neural network using all input variables?使用所有输入变量的神经网络?
【发布时间】:2015-03-02 23:58:30
【问题描述】:

我是在 R 中使用神经网络的新手,并且一直在尝试使用一些广泛的数据集的算法。有没有办法将所有输入变量包含到网络中而无需输入所有名称?例如,我有大约 30 个变量,我想将它们用作输入来预测输出。下面的命令有快捷方式吗?

net <- neuralnet(Output~Var1+Var2+Var3+Var4+.....upto Var30, data, hidden=0)

【问题讨论】:

    标签: r neural-network formula


    【解决方案1】:

    在函数的公式部分插入变量有3种方式:

    首先使用.,它将包括data data.frame 中除响应变量(在本例中为变量输出)之外的所有变量:

    net <- neuralnet(Output ~ ., data, hidden=0) #apart from Output all of the other variables in data are included
    

    如果您的 data.frame 仅具有 Output 和另外 30 个变量,请使用此选项。

    第二如果您想使用名称向量从数据data.frame中包含,您可以尝试:

    names <- c('var1','var2','var3') #choose the names you want
    a <- as.formula(paste('Output ~ ' ,paste(names,collapse='+')))
    
    > a
    Output ~ var1 + var2 + var3 #this is what goes in the neuralnet function below
    

    所以你可以使用:

    net <- neuralnet( a , data, hidden=0) #use a in the function
    

    如果您可以提供 30 个变量名称的向量,请使用它

    第三只需在函数中使用您想要的列子集data data.frame 例如:

    net <- neuralnet(Output ~ ., data=data[,1:31] , hidden=0)
    

    使用它(或任何其他方便的子集)并选择您需要的 30 个变量以及输出变量。然后使用. 包含所有内容。

    希望对你有帮助!

    【讨论】:

    • 我遇到了一个错误,有什么建议吗? stackoverflow.com/questions/31729775/…
    • 不适用于公式中的句点符号,返回“[.data.frame(data, , model.list$variables) 中的错误:选择了未定义的列”
    • @ZhaochenHe 尝试使用内置的mtcars 数据集:neuralnet(mpg ~ ., mtcars, hidden=0),您会发现它有效。我怀疑你的数据有问题。
    猜你喜欢
    • 2015-10-22
    • 2020-06-25
    • 2014-04-11
    • 2012-10-05
    • 1970-01-01
    • 2018-10-20
    • 2010-12-18
    • 2010-10-13
    相关资源
    最近更新 更多