Solved – Neural network for multiple output regression

deep learningmultivariate regressionneural networks

I have a dataset containing 34 input columns and 8 output columns. One way to solve the problem is to take the 34 inputs and build individual regression model for each output column. I am wondering if this problem can be solved using just one model particularly using Neural Network.

I have used a multilayer perceptron, but that needs multiple models just like linear regression. Can sequence to sequence1 learning be a viable option? I tried using TensorFlow it does not appears to be able handle float values.

Any suggestion to tackle this problem by using just one unified model specially using neural network will be appreciated.

  1. Ilya Sutskever, Oriol Vinyals, & Quoc V. Le (2014). Sequence to Sequence Learning with Neural Networks. Advances in Neural Information Processing Systems, 27. (pdf)

Best Answer

A neural net with multiple outcomes takes the form $$ \mathbf{Y} = \mathbf{\gamma} + \mathbf{V}_1\Gamma_1 + \epsilon\\ \mathbf{V}_1 = a\left(\gamma_2 +\mathbf{V}_2\Gamma_2\right)\\ \mathbf{V}_2 = a\left(\gamma_3 +\mathbf{V}_3\Gamma_3\right)\\ \vdots \\ \mathbf{V}_{L-1} = a\left(\gamma_L+ \mathbf{X}\Gamma_L\right)\\ $$ If your outcome has the dimension $N\times 8$, then $[\gamma_1, \Gamma_1]$ will have the dimension $(p_{V1}+1) \times 8$.

Which is to say that you'd be assuming that each outcome shares ALL of the parameters in the hidden layers, and only has different parameters for taking the uppermost derived variable and relating it to the outcome.

Is this a realistic assumption for your context?

Related Question