Bắt đầu ngayBắt đầu miễn phí

Trực quan hóa các cụm

Bạn vừa huấn luyện mô hình k-means với giá trị k tối ưu (k=16) và sinh ra các tâm cụm (centroid). Trong bài tập cuối cùng này, bạn sẽ trực quan hóa các cụm và các centroid bằng cách chồng chúng lên nhau. Điều này sẽ cho thấy việc phân cụm hoạt động tốt đến đâu (lý tưởng là các cụm tách biệt rõ ràng và các centroid nằm ở trung tâm của cụm tương ứng).

Để làm được điều đó, trước tiên bạn sẽ chuyển RDD rdd_split_int thành Spark DataFrame, rồi chuyển tiếp thành Pandas DataFrame để dùng cho việc vẽ. Tương tự, bạn sẽ chuyển cluster_centers thành một Pandas DataFrame. Khi đã có cả hai DataFrame, bạn sẽ tạo các biểu đồ phân tán bằng Matplotlib.

SparkContext sc cũng như các biến rdd_split_intcluster_centers, cùng gói matplotlib.pyplot (được import là plt) đã có sẵn trong không gian làm việc của bạn.

Bài tập này là một phần của khóa học

Nền tảng Big Data với PySpark

Xem khóa học

Hướng dẫn bài tập

  • Chuyển RDD rdd_split_int thành một Spark DataFrame, sau đó thành một pandas DataFrame.
  • Tạo một pandas DataFrame từ danh sách cluster_centers.
  • Tạo biểu đồ phân tán từ pandas DataFrame của dữ liệu gốc (rdd_split_int_df_pandas) và chồng lên đó biểu đồ phân tán từ Pandas DataFrame của các centroid (cluster_centers_pandas).

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.

# Convert rdd_split_int RDD into Spark DataFrame and then to Pandas DataFrame
rdd_split_int_df_pandas = spark.____(rdd_split_int, schema=["col1", "col2"]).toPandas()

# Convert cluster_centers to a pandas DataFrame
cluster_centers_pandas = pd.DataFrame(____, columns=["col1", "col2"])

# Create an overlaid scatter plot of clusters and centroids
plt.scatter(rdd_split_int_df_pandas["col1"], rdd_split_int_df_pandas["col2"])
plt.scatter(____["col1"], ____["col2"], color="red", marker="x")
plt.show()
Chỉnh sửa và Chạy Mã