Визуализация кластеров
Вы только что обучили модель k-средних с оптимальным значением k (k=16) и получили центры кластеров (центроиды). В этом финальном упражнении вы визуализируете кластеры и центроиды, совместив их на одном графике. Это позволит оценить качество кластеризации: в идеале кластеры должны чётко отделяться друг от друга, а центроиды — располагаться в центре своих кластеров.
Для этого вы сначала преобразуете RDD rdd_split_int в Spark DataFrame, а затем — в DataFrame библиотеки pandas, пригодный для построения графиков. Аналогично вы преобразуете cluster_centers в DataFrame pandas. После создания обоих DataFrame вы построите точечные графики с помощью Matplotlib.
В вашем рабочем пространстве доступны: SparkContext sc, переменные rdd_split_int и cluster_centers, а также пакет matplotlib.pyplot (импортированный как plt).
Это упражнение является частью курса
Основы Big Data с PySpark
Инструкции к упражнению
- Преобразуйте RDD
rdd_split_intв Spark DataFrame, а затем — в DataFrame pandas. - Создайте DataFrame pandas из списка
cluster_centers. - Постройте точечный график на основе DataFrame pandas с исходными данными (
rdd_split_int_df_pandas) и наложите на него точечный график на основе DataFrame pandas с центроидами (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()