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)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, renommée ici en pd 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 DataFrame df avec la fonction pd.DataFrame(data).

    Initialisation du StandardScaler

    La classe StandardScaler() est utilisée pour créer un objet scaler, 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 DataFrame df 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.