可视化聚类
您刚刚使用最优的 k 值(k=16)训练了 k-means 模型,并生成了聚类中心(质心)。在最后这个练习中,您将把簇与质心叠加绘制进行可视化。这将帮助评估聚类效果(理想情况下,各簇应彼此分离,且每个质心位于对应簇的中心)。
为此,您将先把 rdd_split_int RDD 转换为 Spark DataFrame,再转换为可用于绘图的 Pandas DataFrame。类似地,您还会把 cluster_centers 转换为 Pandas DataFrame。完成两个 DataFrame 的创建后,使用 Matplotlib 绘制散点图。
工作区中已提供 SparkContext sc、变量 rdd_split_int 和 cluster_centers,以及已导入为 plt 的包 matplotlib.pyplot。
本练习是课程的一部分
使用 PySpark 的大数据基础
练习说明
- 将
rdd_split_intRDD 转换为 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()