Umgang mit fehlenden Daten

Feature Engineering mit PySpark

John Hogue

Lead Data Scientist, General Mills

Wie gehen Daten im digitalen Zeitalter verloren?

Datenerfassung

  • Defekte Sensoren

Regeln zur Datenspeicherung

  • 2017-01-01 vs. January 1st, 2017

Zusammenführen ungleicher Daten

  • Monatlich zu wöchentlich

Absichtlich fehlend

  • Datenschutzbedenken

Fehlend

Feature Engineering mit PySpark

Arten von Fehlwerten

Missing completely at random

  • Fehlende Daten sind eine völlig zufällige Teilmenge

Missing at random

  • Fehlend bedingt zufällig anhand einer anderen Beobachtung

Missing not at random

  • Daten fehlen aufgrund der Erhebungsmethode
Feature Engineering mit PySpark

Fehlwerte beurteilen

Wann Zeilen mit Fehlwerten löschen?

  • Fehlwerte sind selten
  • Missing Completely at Random

isNull()

  • True, wenn der aktuelle Ausdruck null ist.
df.where(df['ROOF'].isNull()).count()
765
Feature Engineering mit PySpark

Fehlwerte visualisieren

# Bibliothek importieren
import seaborn as sns

# DataFrame unterteilen sub_df = df.select(['ROOMAREA1'])
# DataFrame sampeln sample_df = sub_df.sample(False, .5, 4)
# In Pandas DataFrame umwandeln pandas_df = sample_df.toPandas()
# Plotten sns.heatmap(data=pandas_df.isnull())
Feature Engineering mit PySpark

Heatmap fehlender Werte

Heatmap fehlender Daten

Feature Engineering mit PySpark

Imputation fehlender Werte

Vorgehen zum Ersetzen fehlender Werte

Regelbasiert

  • Wert nach Geschäftslogik

Statistikbasiert

  • Mittelwert, Median etc. verwenden

Modellbasiert

  • Modell zur Vorhersage des Werts nutzen
Feature Engineering mit PySpark

Imputation fehlender Werte

** fillna(value, subset=None)

  • value der Wert, mit dem Fehlwerte ersetzt werden
  • subset die Liste der Spaltennamen, in denen ersetzt wird
# Fehlwerte durch Null ersetzen
df.fillna(0, subset=['DAYSONMARKET'])
# Durch den Spaltenmittelwert ersetzen
col_mean = df.agg({'DAYSONMARKET': 'mean'}).collect()[0][0]
df.fillna(col_mean, subset=['DAYSONMARKET'])
Feature Engineering mit PySpark

Lass uns üben!

Feature Engineering mit PySpark

Preparing Video For Download...