To reverse the data scaling applied to a variable with scikit learn in python, a solution is to use inverse_transform(), example
Table of contents
Input data
Let's consider the following data:
from sklearn import preprocessingx = np.array([0.9995577, 0.999717, 0.9997348, 0.99975765, 0.99978703, 0.99980724, 0.9998182, 0.99982077, 0.99981844, 0.99981105, 0.99980015, 0.9997869 ])x = x[:, np.newaxis]print(x)
returns
[[0.9995577 ][0.999717 ][0.9997348 ][0.99975765][0.99978703][0.99980724][0.9998182 ][0.99982077][0.99981844][0.99981105][0.99980015][0.9997869 ]]
Data scaling
Pour normaliser les données on peut utiliser le module scikit-learn preprocessing avec StandardScaler:
scaler = preprocessing.StandardScaler().fit(x)x = scaler.transform(x)print(x)
returns
[[-2.94994187][-0.71621564][-0.46662162][-0.14621582][ 0.26575453][ 0.54914189][ 0.7028245 ][ 0.73886139][ 0.70618981][ 0.60256623][ 0.44972495][ 0.26393165]]
Calculate the mean
print(x.mean())-9.081254267092239e-13
Calculate the standard deviation
print(x.std())1.0
Reverse variable data scaling
Going back to the initial data scale:
x = scaler.inverse_transform(x)print(x)
returns
[[0.9995577 ][0.999717 ][0.9997348 ][0.99975765][0.99978703][0.99980724][0.9998182 ][0.99982077][0.99981844][0.99981105][0.99980015][0.9997869 ]]
