Memeriksa Data Secara Visual

Rekayasa Fitur dengan PySpark

John Hogue

Lead Data Scientist, General Mills

Ringkasan dengan DataFrame.describe()

df.describe(['LISTPRICE']).show()
+-------+------------------+
|summary|         LISTPRICE|
+-------+------------------+
|  count|              5000|
|   mean|        263419.365|
| stddev|143944.10818036905|
|    min|            100000|
|    max|             99999|
+-------+------------------+
Rekayasa Fitur dengan PySpark

Banyak fungsi deskriptif sudah tersedia

  • Mean
    • pyspark.sql.functions.mean(col)
  • Skewness
    • pyspark.sql.functions.skewness(col)
  • Minimum
    • pyspark.sql.functions.min(col)
  • Covariance
    • cov(col1, col2)
  • Correlation
    • corr(col1, col2)
Rekayasa Fitur dengan PySpark

Contoh dengan mean()

  • mean(col)
  • Fungsi agregasi: mengembalikan rata-rata nilai dalam sebuah grup.
df.agg({'SALESCLOSEPRICE': 'mean'}).collect()
[Row(avg(SALESCLOSEPRICE)=262804.4668)]
Rekayasa Fitur dengan PySpark

Contoh dengan cov()

  • cov(col1, col2)
  • Parameter:
    • col1 – kolom pertama
    • col2 – kolom kedua
df.cov('SALESCLOSEPRICE', 'YEARBUILT')
1281910.3840634783
Rekayasa Fitur dengan PySpark

seaborn: visualisasi data statistik

Seaborn

Rekayasa Fitur dengan PySpark

Catatan tentang plotting

Memplot DataFrame PySpark dengan pustaka standar seperti Seaborn memerlukan konversi ke Pandas

PERINGATAN: Sampel DataFrame PySpark sebelum mengonversi ke Pandas!

  • sample(withReplacement, fraction, seed=None)
    • withReplacement mengizinkan pengulangan dalam sampel
    • fraction % rekaman yang dipertahankan
    • seed benih acak untuk reprodusibilitas
# Ambil sampel 50% dari DataFrame PySpark dan hitung baris
df.sample(False, 0.5, 42).count()
2504
Rekayasa Fitur dengan PySpark

Menyiapkan plot distribusi

Seaborn distplot()

  • seaborn.distplot(a)
  • a : Series, array 1D, atau list. Data yang diamati.
# Impor pustaka visualisasi favorit Anda
import seaborn as sns

# Ambil sampel dataframe sample_df = df.select(['SALESCLOSEPRICE']).sample(False, 0.5, 42)
# Konversi sampel ke DataFrame Pandas pandas_df = sample_df.toPandas()
# Plot sns.distplot(pandas_df)
Rekayasa Fitur dengan PySpark

Plot distribusi harga penutupan penjualan

Displot

Rekayasa Fitur dengan PySpark

Memplot hubungan

Seaborn lmplot()

  • seaborn.lmplot(x, y, data)
  • x, y : string, variabel masukan; harus berupa nama kolom dalam data.
  • data : DataFrame Pandas
# Impor pustaka visualisasi favorit Anda
import seaborn as sns

# Pilih kolom s_df = df.select(['SALESCLOSEPRICE', 'SQFTABOVEGROUND']) # Ambil sampel dataframe s_df = s_df.sample(False, 0.5, 42)
# Konversi ke DataFrame Pandas pandas_df = s_df.toPandas()
# Plot sns.lmplot(x='SQFTABOVEGROUND', y='SALESCLOSEPRICE', data=pandas_df)
Rekayasa Fitur dengan PySpark

Plot model linear antara SQFT above ground dan harga jual

Linear Model Plot

Rekayasa Fitur dengan PySpark

Ayo berlatih!

Rekayasa Fitur dengan PySpark

Preparing Video For Download...