Corectarea Asimetriei la Dreapta a Datelor
În slide-uri am arătat cum poți folosi transformările logaritmice pentru a corecta datele cu asimetrie pozitivă (date a căror distribuție este concentrată preponderent în stânga). Pentru a corecta asimetria negativă (date concentrate preponderent în dreapta), trebuie să parcurgi un pas suplimentar numit „reflectare", înainte de a putea aplica inversul lui \(\log\), notat ca (1/\(\log\)), astfel încât distribuția să se apropie de una normală. Reflectarea datelor folosește următoarea formulă pentru a reflecta fiecare valoare: \((x_{\text{max}} +1) – x\).
Acest exercițiu face parte din cursul
Feature Engineering cu PySpark
Instrucțiuni pentru exercițiu
- Folosește funcția de agregare
skewness()pentru a verifica că'YEARBUILT'prezintă asimetrie negativă. - Folosește
withColumn()pentru a crea o nouă coloană'Reflect_YearBuilt'și reflectă valorile din'YEARBUILT'. - Folosind coloana
'Reflect_YearBuilt', creează o altă coloană'adj_yearbuilt'aplicând 1/log() asupra valorilor.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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[____]))