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
Instructions de l’exercice
- Importez
PowerTransformerdu modulepreprocessingdesklearn. - Instanciez
PowerTransformer()en le nommantpow_trans. - Ajustez (
fit) lePowerTransformersur la colonneConvertedSalarydeso_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()