Deep Learning Models for Multi-Output Regression

Multi-output regression involves predicting two or more numerical variables.
Unlike normal regression where a single value is predicted for each sample, multi-output regression requires specialized machine learning algorithms that support outputting multiple variables for each prediction.
Deep learning neural networks are an example of an algorithm that natively supports multi-output regression problems. Neural network models for multi-output regression tasks can be easily defined and evaluated using the Keras deep learning library.
In this tutorial, you will discover how to develop deep learning models for multi-output regression.
After completing this tutorial, you will know:

Multi-output regression is a predictive modeling task that involves two or more numerical output variables.
Neural network models can be configured for multi-output regression tasks.
How to evaluate a neural network for multi-output regression and make a prediction for new data.

Let’s get started.

Deep Learning Models for Multi-Output Regression Photo by Christian Collins , some rights reserved.

Tutorial Overview
This tutorial is divided into three parts; they are:

Multi-Output Regression
Neural Networks for Multi-Outputs
Neural Network for Multi-Output Regression

Multi-Output Regression
Regression is a predictive modeling task that involves predicting a numerical output given some input.
It is different from classification tasks that involve predicting a class label.
Typically, a regression task involves predicting a single numeric value. Although, some tasks require predicting more than one numeric value. These tasks are referred to as multiple-output regression , or multi-output regression for short.
In multi-output regression, two or more outputs are required for each input sample, and the outputs are required simultaneously. The assumption is that the outputs are a function of the inputs.
We can create a synthetic multi-output regression dataset using the make_regression() function in the scikit-learn library.
Our dataset will have 1,000 samples with 10 input features, five of which will be relevant to the output and five of which will be redundant. The dataset will have three numeric outputs for each sample.
The complete example of creating and summarizing the synthetic multi-output regression dataset is listed below.
# example of a multi-output regression problem
from sklearn.datasets import make_regression
# create dataset
X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, n_targets=3, random_state=2)
# summarize shape
print(X.shape, y.shape)
Running the example creates the dataset and summarizes the shape of the input and output elements.
We can see that, as expected, there are 1,000...