CommencezCommencez gratuitement

Transformation logarithmique

Dans les exercices précédents, vous avez mis les données à l'échelle de façon linéaire, ce qui ne modifie pas la forme de la distribution. C'est idéal si vos données suivent une loi normale (ou s'en rapprochent), une hypothèse sur laquelle reposent bon nombre de modèles de Machine Learning. Parfois, vous travaillerez avec des données qui se conforment bien à la normalité, par exemple la taille ou le poids d'une population. À l'inverse, de nombreuses variables du monde réel ne suivent pas ce schéma, comme les salaires ou l'âge d'une population. Dans cet exercice, vous appliquerez une transformation logarithmique à la colonne ConvertedSalary du DataFrame so_numeric_df, car une grande partie de ses valeurs est concentrée vers le bas, mais elle contient aussi des valeurs très élevées. On dit que ces distributions ont une longue queue à droite.

Cette activité fait partie du cours

Ingénierie des caractéristiques pour le Machine Learning en Python

Voir le cours

Instructions de l’exercice

  • Importez PowerTransformer du module preprocessing de sklearn.
  • Instanciez PowerTransformer() en le nommant pow_trans.
  • Ajustez (fit) le PowerTransformer sur la colonne ConvertedSalary de so_numeric_df.
  • Transformez cette même colonne avec le transformateur que vous venez d'ajuster.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Import PowerTransformer
from sklearn.preprocessing import ____

# Instantiate PowerTransformer
pow_trans = ____

# Train the transform on the data
____

# Apply the power transform to the data
so_numeric_df['ConvertedSalary_LG'] = ____(so_numeric_df[['ConvertedSalary']])

# Plot the data before and after the transformation
so_numeric_df[['ConvertedSalary', 'ConvertedSalary_LG']].hist()
plt.show()
Modifier et exécuter le code