开始使用免费开始使用

可视化聚类

您刚刚使用最优的 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,以及已导入为 plt 的包 matplotlib.pyplot

本练习是课程的一部分

使用 PySpark 的大数据基础

查看课程

练习说明

  • 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()
编辑并运行代码