Main Question
Given multiple output parameters that are independent of each other, would multiple ANNs with a single output neuron give better prediction results than a single ANN with multiple outputs? Is there a benefit for each case?
Specific description:
I am using the 'caret' package in R to come up with an optimized artificial neural network (ANN). The method I am using to train the network is within 'nnet' package, which by itself allows multiple output neurons:
For instance, for the given dataset:
dataset
x1 x2 x3 y1 y2 y3
1.4 5 6.1 7.9 8.5 3.5
... ... ... ... ... ...
I use
nnet(dataset[,InputIndices],dataset[,OutputIndices],size=HN, decay=wd, rang=rg)
But when using the 'nnet' method within 'caret', only single output is possible.
Within Caret documentation:
Arguments
x: an object where samples are in rows and features are in columns. This could be a simple matrix, data frame or other type (e.g. sparse matrix).
y: a numeric or factor vector containing the outcome for each sample.
form: A formula of the form y ~ x1 + x2 + ...
Therefore the code I use to train the network is:
for (n in 1:NumOutputNeurons) {
train(traindata[,InputIndices],traindata[,OutputIndices][,n], tuneGrid=param.grid,
maxit = 1e4,
method = "nnet", linout=F, trace=F, na.rm = TRUE,
trControl = tc)
}
From a statistical point of view, is each method better than the other?
(As an extra question, do you know a way to allow multiple outputs within Caret package?)