神经网络使用所有输入变量?

时间:2015-01-05 12:35:48

标签: r neural-network formula

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

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

我到处寻找,但无法找到解决方案。对不起,如果这是一个基本问题!

1 个答案:

答案 0 :(得分:5)

有三种方法可以在函数的公式部分插入变量:

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

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

如果您的data.frame只有输出和另外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个变量以及Output变量。然后使用.包含所有内容。

希望它有所帮助!