Korrigera högersnedfördelad data
I slides visade vi hur logaritmtransformationer kan användas för att rätta till positivt snedfördelad data (data vars fördelning är koncentrerad till vänster). För att korrigera negativ snedhet (data koncentrerad till höger) behöver du ta ett extra steg som kallas "spegling" innan du kan tillämpa inversen av \(\log\), skriven som (1/\(\log\)), för att ge data en mer normalfördelad form. Spegling av data använder följande formel för varje värde: \((x_{\text{max}} +1) – x\).
Den här övningen är en del av kursen
Feature Engineering med PySpark
Övningsinstruktioner
- Använd aggregatfunktionen
skewness()för att verifiera att'YEARBUILT'har negativ snedhet. - Använd
withColumn()för att skapa en ny kolumn'Reflect_YearBuilt'och spegla värdena i'YEARBUILT'. - Använd kolumnen
'Reflect_YearBuilt'för att skapa ytterligare en kolumn,'adj_yearbuilt', genom att beräkna 1/log() av värdena.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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[____]))