Praca z brakującymi danymi

Inżynieria cech z PySpark

John Hogue

Lead Data Scientist, General Mills

Jak dane giną w erze cyfrowej?

Zbieranie danych

  • Uszkodzone czujniki

Reguły przechowywania danych

  • 2017-01-01 vs 1 stycznia 2017

Łączenie różnych danych

  • Miesięczne vs tygodniowe

Celowo brakujące

  • Ochrona prywatności

Brakujące

Inżynieria cech z PySpark

Rodzaje braków danych

Zupełnie losowe braki

  • Brakujące dane stanowią losowy podzbiór

Losowe braki

  • Warunkowo losowe braki zależne od innej obserwacji

Nielosowe braki

  • Dane brakują ze względu na sposób ich zbierania
Inżynieria cech z PySpark

Ocena brakujących wartości

Kiedy usuwać wiersze z brakującymi danymi?

  • Braki są rzadkie
  • Braki zupełnie losowe

isNull()

  • Zwraca True, jeśli wyrażenie ma wartość null.
df.where(df['ROOF'].isNull()).count()
765
Inżynieria cech z PySpark

Wizualizacja brakujących wartości

# Import library
import seaborn as sns

# subset the dataframe sub_df = df.select(['ROOMAREA1'])
# sample the dataframe sample_df = sub_df.sample(False, .5, 4)
# Convert to Pandas DataFrame pandas_df = sample_df.toPandas()
# Plot it sns.heatmap(data=pandas_df.isnull())
Inżynieria cech z PySpark

Mapa cieplna brakujących wartości

Mapa cieplna brakujących danych

Inżynieria cech z PySpark

Imputacja brakujących wartości

Proces zastępowania brakujących wartości

Oparte na regułach

  • Wartość wynikająca z logiki biznesowej

Oparte na statystykach

  • Używanie średniej, mediany itp.

Oparte na modelu

  • Przewidywanie wartości za pomocą modelu
Inżynieria cech z PySpark

Imputacja brakujących wartości

** fillna(value, subset=None)

  • value wartość zastępująca braki
  • subset lista nazw kolumn do uzupełnienia
# Replacing missing values with zero
df.fillna(0, subset=['DAYSONMARKET'])
# Replacing with the mean value for that column
col_mean = df.agg({'DAYSONMARKET': 'mean'}).collect()[0][0]
df.fillna(col_mean, subset=['DAYSONMARKET'])
Inżynieria cech z PySpark

Czas na ćwiczenia!

Inżynieria cech z PySpark

Preparing Video For Download...