我目前使用神经网络的方式是从多个输入点预测一个输出点。更具体地说,我运行了下面的代码。
nn <- neuralnet(as.formula(a ~ c + d),data=Z, hidden=c(3,2), err.fct="sse", act.fct=custom,linear.output=TRUE, rep=5)
在这里,如果Z是一个包含列名a, b, c的矩阵,它将从列c和d的对应行中预测列a中的一个点。(垂直维度被用作训练样本。)
假设还有一个列b。我想知道是否有办法从c和d预测a和b?我尝试过
as.formula(a+b ~ c+d)
但这似乎不起作用。
有什么想法吗?
回答:
不好意思,使用a + b ~ c + d 效果很好。我原以为函数不接受这种输入(因为它多次崩溃),但现在我清理了一切后,问题已经解决了。
nn <- neuralnet(as.formula(a + b ~ c + d), data=Z, hidden=c(3,2), err.fct="sse", act.fct=custom, linear.output=TRUE, rep=5)
运行得很完美,返回了两个点(或两列)的输出!很棒。
来自neuralnet
的例子,这种格式有效 🙂
AND <- c(rep(0,7),1) OR <- c(0,rep(1,7)) binary.data <- data.frame(expand.grid(c(0,1), c(0,1), c(0,1)), AND, OR) print(net <- neuralnet(AND+OR~Var1+Var2+Var3, binary.data, hidden=0, rep=10, err.fct="ce", linear.output=FALSE))