開始使用免費開始

視覺化叢集

你剛以最佳的 k 值(k=16)訓練了 k-means 模型,並產生了叢集中心(重心)。在最後這個練習中,你會把叢集與重心疊加呈現,來視覺化它們。這能幫助判斷分群效果是否良好(理想情況下,各叢集彼此應該區隔清楚,而重心應位於各自叢集的中心)。

為了達成這個目標,你會先把 rdd_split_int RDD 轉換成 Spark DataFrame,再轉成可用於繪圖的 Pandas DataFrame。類似地,你也會將 cluster_centers 轉成 Pandas DataFrame。當兩個 DataFrame 都準備好後,你將使用 Matplotlib 繪製散佈圖。

工作環境中已提供 SparkContext sc、變數 rdd_split_intcluster_centers,以及套件 matplotlib.pyplot(以 plt 匯入)。

本練習屬於課程

使用 PySpark 的 Big Data 基礎

檢視課程

練習說明

  • rdd_split_int RDD 轉換為 Spark DataFrame,接著再轉為 pandas DataFrame。
  • cluster_centers 清單建立一個 pandas DataFrame。
  • 使用原始資料的 pandas DataFrame(rdd_split_int_df_pandas)建立散佈圖,並將重心的 Pandas DataFrame(cluster_centers_pandas)的散佈圖疊加其上。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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()
編輯並執行程式碼