Kiểm tra dữ liệu bằng trực quan

Feature Engineering với PySpark

John Hogue

Lead Data Scientist, General Mills

Mô tả dữ liệu với DataFrame.describe()

df.describe(['LISTPRICE']).show()
+-------+------------------+
|summary|         LISTPRICE|
+-------+------------------+
|  count|              5000|
|   mean|        263419.365|
| stddev|143944.10818036905|
|    min|            100000|
|    max|             99999|
+-------+------------------+
Feature Engineering với PySpark

Nhiều hàm mô tả đã sẵn có

  • 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)
Feature Engineering với PySpark

Ví dụ với mean()

  • mean(col)
  • Hàm tổng hợp: trả về giá trị trung bình (mean) của các giá trị trong một nhóm.
df.agg({'SALESCLOSEPRICE': 'mean'}).collect()
[Row(avg(SALESCLOSEPRICE)=262804.4668)]
Feature Engineering với PySpark

Ví dụ với cov()

  • cov(col1, col2)
  • Tham số:
    • col1 – cột thứ nhất
    • col2 – cột thứ hai
df.cov('SALESCLOSEPRICE', 'YEARBUILT')
1281910.3840634783
Feature Engineering với PySpark

seaborn: trực quan hóa dữ liệu thống kê

Seaborn

Feature Engineering với PySpark

Ghi chú khi vẽ biểu đồ

Vẽ biểu đồ DataFrame của PySpark bằng thư viện chuẩn như Seaborn cần chuyển sang Pandas

CẢNH BÁO: Hãy lấy mẫu DataFrame PySpark trước khi chuyển sang Pandas!

  • sample(withReplacement, fraction, seed=None)
    • withReplacement cho phép lặp lại trong mẫu
    • fraction % bản ghi giữ lại
    • seed hạt giống ngẫu nhiên để tái lập
# Lấy mẫu 50% DataFrame PySpark và đếm số hàng
df.sample(False, 0.5, 42).count()
2504
Feature Engineering với PySpark

Chuẩn bị vẽ phân phối

Seaborn distplot()

  • seaborn.distplot(a)
  • a : Series, mảng 1 chiều, hoặc list. Dữ liệu quan sát.
# Import thư viện trực quan hóa bạn thích
import seaborn as sns

# Lấy mẫu dataframe sample_df = df.select(['SALESCLOSEPRICE']).sample(False, 0.5, 42)
# Chuyển mẫu sang Pandas DataFrame pandas_df = sample_df.toPandas()
# Vẽ biểu đồ sns.distplot(pandas_df)
Feature Engineering với PySpark

Biểu đồ phân phối của giá đóng giao dịch

Displot

Feature Engineering với PySpark

Vẽ mối quan hệ

Seaborn lmplot()

  • seaborn.lmplot(x, y, data)
  • x, y : chuỗi, biến đầu vào; phải là tên cột trong dữ liệu.
  • data : Pandas DataFrame
# Import thư viện trực quan hóa bạn thích
import seaborn as sns

# Chọn cột s_df = df.select(['SALESCLOSEPRICE', 'SQFTABOVEGROUND']) # Lấy mẫu dataframe s_df = s_df.sample(False, 0.5, 42)
# Chuyển sang Pandas DataFrame pandas_df = s_df.toPandas()
# Vẽ biểu đồ sns.lmplot(x='SQFTABOVEGROUND', y='SALESCLOSEPRICE', data=pandas_df)
Feature Engineering với PySpark

Biểu đồ mô hình tuyến tính giữa diện tích trên mặt đất và giá bán

Biểu đồ Mô hình Tuyến tính

Feature Engineering với PySpark

Cùng luyện tập nào!

Feature Engineering với PySpark

Preparing Video For Download...