Zacznij terazZacznij za darmo

Korekcja danych z prawostronną skośnością

Na slajdach pokazaliśmy, jak za pomocą transformacji logarytmicznej można skorygować dodatnią skośność danych (gdy rozkład jest skupiony głównie po lewej stronie). Aby skorygować ujemną skośność (gdy dane skupiają się po prawej stronie), trzeba wykonać dodatkowy krok zwany „odbiciem" – zanim będzie można zastosować odwrotność \(\log\), czyli (1/\(\log\)), tak żeby rozkład danych bardziej przypominał rozkład normalny. Odbicie danych polega na przekształceniu każdej wartości według wzoru: \((x_{\text{max}} +1) – x\).

To ćwiczenie jest częścią kursu

Inżynieria cech z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj funkcji agregującej skewness(), aby potwierdzić, że kolumna 'YEARBUILT' ma ujemną skośność.
  • Za pomocą withColumn() utwórz nową kolumnę 'Reflect_YearBuilt' i odwróć wartości kolumny 'YEARBUILT'.
  • Korzystając z kolumny 'Reflect_YearBuilt', utwórz kolejną kolumnę 'adj_yearbuilt', stosując do jej wartości przekształcenie 1/log().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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[____]))
Edytuj i uruchom kod