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 :
- Création du DataFrame : Un DataFrame
df
est créé avec trois colonnes :col1
,col2
, etcol3
. Les deux premières colonnes sont numériques, tandis quecol3
contient des valeurs non numériques. - Transformation des données : La méthode
fit_transform()
est utilisée pour standardiser les colonnescol1
etcol2
. - Inversion de la transformation : Pour retrouver les valeurs originales de
col1
etcol2
, nous utilisons la méthodeinverse_transform()
du scaler qui inverse l'opération de standardisation. - Affichage : Le DataFrame après inversion montre que les colonnes
col1
etcol2
ont été remises dans leur état d'origine, tandis quecol3
reste inchangée.
Conseils d'utilisation :
- Important : L'inversion de la transformation ne peut être effectuée que si le modèle de transformation (par exemple,
StandardScaler
) a été "fit" avec les données d'origine, car il utilise les statistiques (comme la moyenne et l'écart-type) pour effectuer l'inversion. - Cette opération est utile après avoir appliqué une transformation comme la standardisation ou la normalisation, et lorsque vous devez interpréter les résultats dans le contexte des valeurs originales.
- Assurez-vous de n'utiliser
inverse_transform()
que sur les mêmes colonnes qui ont été transformées à l'origine, sinon les résultats peuvent être incorrects.
- Création du DataFrame : Un DataFrame