Pour inverser la normalisation ("data scaling") d'une variable avec scikit-learn en python, une solution est d'utiliser inverse_transform(), exemple
Table des matières
Soit les données suivantes:
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)
donne
[[0.9995577 ][0.999717 ][0.9997348 ][0.99975765][0.99978703][0.99980724][0.9998182 ][0.99982077][0.99981844][0.99981105][0.99980015][0.9997869 ]]
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)
donne
[[-2.94994187][-0.71621564][-0.46662162][-0.14621582][ 0.26575453][ 0.54914189][ 0.7028245 ][ 0.73886139][ 0.70618981][ 0.60256623][ 0.44972495][ 0.26393165]]
Calculer la moyenne:
print(x.mean())-9.081254267092239e-13
Calculer la standard déviation:
print(x.std())1.0
Revenir aux données initiales:
x = scaler.inverse_transform(x)print(x)
donne
[[0.9995577 ][0.999717 ][0.9997348 ][0.99975765][0.99978703][0.99980724][0.9998182 ][0.99982077][0.99981844][0.99981105][0.99980015][0.9997869 ]]
