Sử dụng trực quan hóa: distplot
Hiểu phân phối của biến phụ thuộc rất quan trọng và có thể ảnh hưởng đến loại mô hình hoặc bước tiền xử lý bạn chọn. Cách tốt để làm điều này là vẽ biểu đồ; tuy nhiên, việc vẽ không phải là chức năng tích hợp sẵn trong PySpark, nên bạn sẽ cần vài bước trung gian để chạy đúng. Trong bài tập này, bạn sẽ trực quan hóa biến 'LISTPRICE' và khai thác thêm thông tin về phân phối của nó bằng cách tính độ lệch (skewness).
Các gói matplotlib.pyplot và seaborn đã được nhập sẵn với bí danh plt và sns.
Bài tập này là một phần của khóa học
Feature Engineering với PySpark
Hướng dẫn bài tập
- Lấy mẫu 50% dataframe
dfvớisample(), đảm bảo không lấy lặp (without replacement) và đặt hạt ngẫu nhiên (random seed) là 42. - Chuyển Spark DataFrame sang
pandas.DataFrame()bằngtoPandas(). - Vẽ biểu đồ phân phối bằng phương thức
distplot()củaseaborn. - Import hàm
skewness()từpyspark.sql.functionsvà tính trên phép tổng hợp của cột'LISTPRICE'với phương thứcagg(). Nhớcollect()kết quả để thực thi và lấy giá trị.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Select a single column and sample and convert to pandas
sample_df = df.select(['LISTPRICE']).____(____, ____, 42)
pandas_df = sample_df.____()
# Plot distribution of pandas_df and display plot
sns.____(____)
plt.show()
# Import skewness function
from pyspark.sql.functions import skewness
# Compute and print skewness of LISTPRICE
print(df.____({____: ____}).collect())