Corriger une asymétrie à droite
Dans le diaporama, nous avons montré comment utiliser des transformations logarithmiques pour corriger une asymétrie positive (des données dont la distribution est surtout à gauche). Pour corriger une asymétrie négative (données surtout à droite), vous devez ajouter une étape appelée « réflexion » avant d'appliquer l'inverse de \(\log\), écrit comme (1/\(\log\)), afin que les données ressemblent davantage à une distribution normale. La réflexion des données utilise la formule suivante pour transformer chaque valeur : \((x_{\text{max}} +1) – x\).
Cette activité fait partie du cours
Ingénierie des caractéristiques avec PySpark
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 réfléchir les 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[____]))