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 preprocessing
x = 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 ]]