Inverser la transformation pour retrouver les valeurs originales
Inverser une transformation permet de revenir aux valeurs originales d’un jeu de données après avoir appliqué une transformation, comme la normalisation ou la standardisation. Cette opération est souvent réalisée à l’aide des méthodes inverse_transform() disponibles dans les classes comme MinMaxScaler ou StandardScaler de Scikit-learn, qui rétablissent les données dans leur échelle d’origine. Cela est particulièrement utile lorsque vous souhaitez interpréter les résultats d’un modèle ou présenter les valeurs dans leur forme initiale après avoir effectué une transformation préalable.
Fonctions :
-
scaler.inverse_transform()
Cette fonction permet de récupérer les valeurs originales après avoir appliqué une transformation telle que la normalisation ou la standardisation. Cela peut être nécessaire lorsque vous avez transformé vos données pour les adapter à un modèle et souhaitez revenir aux valeurs originales pour des analyses ou des comparaisons.
Importation :
from sklearn.preprocessing import StandardScaler
Attributs :
Paramètre Type Description Valeur par défaut data_transforme
numpy.ndarray, pandas.DataFrame Données transformées à l'aide d'un scaler (par exemple, StandardScaler
).None
scaler
transformer object L'instance du transformateur qui a été utilisé pour transformer les données. None
Exemple de code :
import pandas as pd from sklearn.preprocessing import StandardScaler # Exemple de DataFrame data = {'col1': [10, 20, 30, 40], 'col2': [5, 15, 25, 35], 'col3': ['A', 'B', 'C', 'D']} df = pd.DataFrame(data) # Initialisation du StandardScaler scaler = StandardScaler() # Appliquer la transformation sur les colonnes 'col1' et 'col2' df[['col1', 'col2']] = scaler.fit_transform(df[['col1', 'col2']]) # Inverser la transformation pour retrouver les valeurs originales df[['col1', 'col2']] = scaler.inverse_transform(df[['col1', 'col2']]) # Affichage du DataFrame après inverse transformation print(df)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour simplifier son utilisation dans le code.from sklearn.preprocessing import StandardScaler
importe la classe StandardScaler de la bibliothèque scikit-learn, qui est utilisée pour normaliser les données, c'est-à-dire pour les mettre à une échelle similaire.Exemple de DataFrame
Un dictionnaire nommé
data
est créé avec trois clés :'col1'
,'col2'
, et'col3'
, où les deux premières contiennent des listes de nombres et la troisième contient des lettres. Ce dictionnaire est ensuite converti en un DataFramedf
avec la fonctionpd.DataFrame(data)
.Initialisation du StandardScaler
La classe
StandardScaler()
est utilisée pour créer un objetscaler
, qui servira à normaliser les colonnes numériques du DataFrame. La normalisation permet de rendre les données de chaque colonne indépendantes de leurs unités et échelles.Appliquer la transformation sur les colonnes 'col1' et 'col2'
La méthode
fit_transform()
est utilisée pour calculer la moyenne et l'écart-type des colonnes'col1'
et'col2'
, puis appliquer une transformation pour les normaliser (mettre à échelle). Le résultat de cette transformation remplace les anciennes valeurs de ces colonnes dans le DataFrame.Inverser la transformation pour retrouver les valeurs originales
La méthode
inverse_transform()
permet de restaurer les valeurs originales des colonnes'col1'
et'col2'
en utilisant les mêmes paramètres de normalisation (moyenne et écart-type) qui ont été calculés lors de la transformation. Le DataFramedf
est mis à jour avec ces nouvelles valeurs.Affichage du DataFrame après inverse transformation
La fonction
print(df)
affiche le DataFrame après l'inversion de la transformation, montrant ainsi que les colonnes'col1'
et'col2'
ont retrouvé leurs valeurs initiales.