[Question] Data standardization / scaling and inverse_transform on predicted series
carusyte opened this issue · comments
To be honest, I'm not a data scientist. Just curious: if standardization is applied on the inputs:
SOFTS/run_on_your_own_dataset.ipynb
Lines 171 to 181 in 011c805
Would it be necessary or better off to perform inverse_transformation
on the predictions?
SOFTS/run_on_your_own_dataset.ipynb
Lines 580 to 582 in 011c805
E.g.
scaler.inverse_transform(predictions)
In practical applications, it is indeed possible to use inverse_transform on the predictions. However, the reason we do not use inverse_transform in this context is that when calculating the Mean Squared Error (MSE), applying the inverse transformation can cause the MSE of certain channels to be particularly large due to the inherently high values in those channels. This would not accurately reflect the model's average predictive performance across all channels. Therefore, we choose to compute MSE on the standardized data to better assess the overall predictive ability of the model.
In practical applications, it is indeed possible to use inverse_transform on the predictions. However, the reason we do not use inverse_transform in this context is that when calculating the Mean Squared Error (MSE), applying the inverse transformation can cause the MSE of certain channels to be particularly large due to the inherently high values in those channels. This would not accurately reflect the model's average predictive performance across all channels. Therefore, we choose to compute MSE on the standardized data to better assess the overall predictive ability of the model.
This is a research convention to ensure a fair comparison among channels of different scales. See the first paper to come up with the benchmark and its code.