# does a scaled multi output neural network result in a scaled RMSE?

Ive scaled my data to be in the range 0-1. ive used this scaled data to train a deep neural network,

model.fit(xscaled,yscaled, verbose=0,epochs=180, batch_size=70, validation_split=0.2)


ive then used the sklearn rmse function to calculate rmse.

print('rmse',sqrt(metrics.mean_squared_error(y_test,predictions)))


which has given me a value of 0.097. The data set im using has 22 input values, with 3 outputs. Im struggling to understand the single rmse value, considering i have 3 outputs. is the rmse scaled because i scaled the data? ie because the data is scaled from 0-1, and i have an rsme of 0.097, this results in an error of 9.7%? i understand that rsme measures depends on the range of data to how 'good' the model is, but considering i have a multi output model with different ranges for the 3 outputs im not sure how this works. thank you.

• How are you calculating the RMSE when the outputs themselves are vectors?
– Dave
Commented Dec 20, 2023 at 19:48

## 1 Answer

First, RMSE is not equal to relative error so RMSE of 0.09 does not mean you made 9% error on average. (which is the mean relative error)

Then, as you mentioned, RMSE is scale-dependent. When dealing with multi-output regression, RMSE is computed for each output and then averaged. It is clear that you have to normalize outputs if you want global RMSE to be equally representative of each target's RMSE. You could also use relative RMSE : $$$$RMSE\% = \frac{RMSE}{\bar{y}}$$$$

Wich represents RMSE relative to mean target value and enables you to compare and average errors on different targets.

However, I don't recommend averaging RMSE of the outputs unless it is done for models comparison purposes and averaging weights have been properly adjusted.