Correggere dati con asimmetria a destra
Nelle diapositive abbiamo mostrato come usare le trasformazioni logaritmiche per sistemare dati con asimmetria positiva (distribuzione concentrata a sinistra). Per correggere l’asimmetria negativa (dati per lo più a destra) serve un passaggio in più, chiamato "riflessione", prima di poter applicare l’inverso di \(\log\), scritto come (1/\(\log\)), per rendere i dati più simili a una distribuzione normale. La riflessione dei dati usa la seguente formula per riflettere ogni valore: \((x_{\text{max}} +1) – x\).
Questo esercizio fa parte del corso
Feature Engineering con PySpark
Istruzioni dell'esercizio
- Usa la funzione di aggregazione
skewness()per verificare che'YEARBUILT'abbia asimmetria negativa. - Usa
withColumn()per creare una nuova colonna'Reflect_YearBuilt'e riflettere i valori di'YEARBUILT'. - Usando la colonna
'Reflect_YearBuilt', crea un’altra colonna'adj_yearbuilt'calcolando 1/log() dei valori.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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[____]))