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 approchent), une hypothèse courante dans de nombreux modèles de Machine Learning. Parfois, vous travaillerez avec des données proches de la normalité, par exemple la taille ou le poids d’une population. En revanche, beaucoup de variables réelles ne suivent pas ce schéma, comme les salaires ou l’âge d’une population. Dans cet exercice, vous allez appliquer une transformation logarithmique à la colonne ConvertedSalary du DataFrame so_numeric_df, car une grande partie des valeurs est concentrée vers le bas, tout en contenant aussi des valeurs très élevées. On dit que ces distributions ont une longue queue à droite.
Cet exercice fait partie du cours
Feature engineering pour le Machine Learning en Python
Instructions
- Importez
PowerTransformerdepuis le modulepreprocessingdesklearn. - Instanciez
PowerTransformer()sous le nompow_trans. - Ajustez le
PowerTransformersur la colonneConvertedSalarydeso_numeric_df. - Transformez cette même colonne avec le scaler que vous venez d’ajuster.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()