Rechts-scheve data corrigeren
In de dia's lieten we zien hoe je log-transformaties kunt gebruiken om positief scheve data te corrigeren (data waarvan de verdeling vooral links ligt). Om negatieve scheefheid te corrigeren (data vooral rechts) moet je eerst een extra stap zetten, "spiegelen" genaamd, voordat je de inverse van \(\log\) kunt toepassen, geschreven als (1/\(\log\)), zodat de data meer op een normale verdeling lijkt. Data spiegelen doe je met de volgende formule om elke waarde te spiegelen: \((x_{\text{max}} +1) – x\).
Deze oefening maakt deel uit van de cursus
Feature Engineering met PySpark
Oefeninstructies
- Gebruik de aggregatiefunctie
skewness()om te controleren dat'YEARBUILT'negatieve scheefheid heeft. - Gebruik
withColumn()om een nieuwe kolom'Reflect_YearBuilt'te maken en de waarden van'YEARBUILT'te spiegelen. - Maak met de kolom
'Reflect_YearBuilt'nog een kolom'adj_yearbuilt'door 1/log() van de waarden te nemen.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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[____]))