我是神经网络的新手,并且正在尝试使用一些大数据集。有没有办法将所有输入变量都包含在网络中而无需键入所有名称?例如,我有大约30个变量,我想用它们作为输入来预测输出。是否有以下命令的快捷方式?
net <- neuralnet(Output~Var1+Var2+Var3+Var4+.....upto Var30, data, hidden=0)
我到处寻找,但无法找到解决方案。对不起,如果这是一个基本问题!
答案 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变量。然后使用.
包含所有内容。
希望它有所帮助!