LoslegenKostenlos starten

Rechts-schief verteilte Daten korrigieren

In den Folien haben wir gezeigt, wie du mit Log-Transformationen positiv schiefe Daten korrigieren kannst (Daten, deren Verteilung überwiegend links liegt). Um eine negative Schiefe zu korrigieren (Daten überwiegend rechts), brauchst du einen zusätzlichen Schritt, das sogenannte „Reflektieren“, bevor du die Inverse von \(\log\), geschrieben als (1/\(\log\)), anwenden kannst, damit die Daten eher einer Normalverteilung ähneln. Das Reflektieren der Daten nutzt folgende Formel, um jeden Wert zu spiegeln: \((x_{\text{max}} +1) – x\).

Diese Übung ist Teil des Kurses

<Kurs>Feature Engineering mit PySpark</Kurs>
Kurs ansehen

Übungsanweisungen

  • Verwende die Aggregatfunktion skewness(), um zu prüfen, dass 'YEARBUILT' eine negative Schiefe hat.
  • Verwende withColumn(), um eine neue Spalte 'Reflect_YearBuilt' zu erstellen und die Werte von 'YEARBUILT' zu reflektieren.
  • Erstelle aus der Spalte 'Reflect_YearBuilt' eine weitere Spalte 'adj_yearbuilt', indem du 1/log() der Werte nimmst.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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[____]))
Code bearbeiten und ausführen