Corriger une asymétrie à droite
Dans les diaporamas, nous avons montré comment utiliser des transformations logarithmiques pour corriger une asymétrie positive (distribution majoritairement à gauche). Pour corriger une asymétrie négative (distribution majoritairement à droite), vous devez ajouter une étape appelée « réflexion » avant de pouvoir appliquer l’inverse de \(\log\), noté (1/\(\log\)), afin de rendre les données plus proches d’une distribution normale. La réflexion des données utilise la formule suivante pour transformer chaque valeur : \((x_{\text{max}} +1) – x\).
Cet exercice fait partie du cours
<cours>Feature Engineering avec PySpark</cours>Instructions de l’exercice
- Utilisez la fonction d’agrégation
skewness()pour vérifier que'YEARBUILT'présente une asymétrie négative. - Utilisez
withColumn()pour créer une nouvelle colonne'Reflect_YearBuilt'et appliquer la réflexion aux valeurs de'YEARBUILT'. - À partir de la colonne
'Reflect_YearBuilt', créez une autre colonne'adj_yearbuilt'en prenant 1/log() des valeurs.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from pyspark.sql.functions import log
# Compute the skewness
print(df.____({____: ____}).____())
# Calculate the max year
max_year = df.____({____: ____}).____()[0][0]
# Create a new column of reflected data
df = df.____(____, (max_year + 1) - df[____])
# Create a new column based reflected data
df = df.____(____, 1 / ____(df[____]))