Hantera saknade data

Feature Engineering med PySpark

John Hogue

Lead Data Scientist, General Mills

Hur uppstår saknade data i den digitala världen?

Datainsamling

  • Trasiga sensorer

Regler för datalagring

  • 2017-01-01 vs 1 januari 2017

Sammanfogning av olika datakällor

  • Månadsvis till veckovis

Avsiktligt saknade värden

  • Integritetsskäl

Saknad

Feature Engineering med PySpark

Typer av saknade data

Helt slumpmässigt saknade

  • Saknade värden är ett helt slumpmässigt urval

Slumpmässigt saknade

  • Saknade värden är villkorligt slumpmässiga baserat på en annan observation

Inte slumpmässigt saknade

  • Data saknas på grund av hur det samlas in
Feature Engineering med PySpark

Analysera saknade värden

När ska rader med saknade värden tas bort?

  • Saknade värden är sällsynta
  • Helt slumpmässigt saknade

isNull()

  • Sant om det aktuella uttrycket är null.
df.where(df['ROOF'].isNull()).count()
765
Feature Engineering med PySpark

Visualisera saknade värden

# 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())
Feature Engineering med PySpark

Heatmap för saknade värden

Heatmap för saknade data

Feature Engineering med PySpark

Imputering av saknade värden

Processen att ersätta saknade värden

Regelbaserat

  • Värde baserat på affärslogik

Statistikbaserat

  • Använder medelvärde, median osv.

Modellbaserat

  • Använder en modell för att förutsäga värdet
Feature Engineering med PySpark

Imputering av saknade värden

** fillna(value, subset=None)

  • value värdet som ersätter saknade värden
  • subset lista med kolumnnamn där saknade värden ska ersättas
# 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'])
Feature Engineering med PySpark

Nu kör vi en övning!

Feature Engineering med PySpark

Preparing Video For Download...