НачатьНачать бесплатно

Визуализация кластеров

Вы только что обучили модель 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()
Редактировать и запускать код