Bekerja dengan Data Hilang

Rekayasa Fitur dengan PySpark

John Hogue

Lead Data Scientist, General Mills

Bagaimana data bisa hilang di era digital?

Pengumpulan Data

  • Sensor rusak

Aturan Penyimpanan Data

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

Menggabungkan Data yang Berbeda

  • Bulanan ke Mingguan

Sengaja Dikosongkan

  • Kekhawatiran privasi

Hilang

Rekayasa Fitur dengan PySpark

Jenis Kehilangan Data

Hilang sepenuhnya acak

  • Data hilang hanyalah subhimpunan yang benar-benar acak

Hilang acak

  • Hilang bersyarat acak berdasarkan pengamatan lain

Tidak hilang acak

  • Data hilang karena cara pengumpulannya
Rekayasa Fitur dengan PySpark

Menilai Nilai Hilang

Kapan baris dengan data hilang dihapus?

  • Nilai hilang jarang
  • Hilang Sepenuhnya Secara Acak

isNull()

  • True jika ekspresi saat ini bernilai null.
df.where(df['ROOF'].isNull()).count()
765
Rekayasa Fitur dengan PySpark

Memvisualisasikan Nilai Hilang

# 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())
Rekayasa Fitur dengan PySpark

Heatmap Nilai Hilang

Peta panas data hilang

Rekayasa Fitur dengan PySpark

Imputasi Nilai Hilang

Proses mengganti nilai hilang

Berbasis Aturan

  • Nilai berdasarkan logika bisnis

Berbasis Statistik

  • Menggunakan mean, median, dll.

Berbasis Model

  • Gunakan model untuk memprediksi nilai
Rekayasa Fitur dengan PySpark

Imputasi Nilai Hilang

** fillna(value, subset=None)

  • value nilai pengganti untuk yang hilang
  • subset daftar nama kolom yang akan diganti nilainya
# Mengganti nilai hilang dengan nol
df.fillna(0, subset=['DAYSONMARKET'])
# Mengganti dengan nilai mean kolom tersebut
col_mean = df.agg({'DAYSONMARKET': 'mean'}).collect()[0][0]
df.fillna(col_mean, subset=['DAYSONMARKET'])
Rekayasa Fitur dengan PySpark

Ayo berlatih!

Rekayasa Fitur dengan PySpark

Preparing Video For Download...