ПочатиПочніть безкоштовно

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

Ви щойно натренували модель k-means з оптимальним значенням k (k=16) і отримали центри кластерів (центроїди). У цій фінальній вправі ви візуалізуєте кластери та центроїди, наклавши їх один на одного. Це покаже, наскільки вдало спрацювало кластеризування (ідеально, якщо кластери чітко відрізняються між собою, а центроїди розташовані в центрі відповідних кластерів).

Щоб це зробити, спочатку перетворіть RDD rdd_split_int на Spark DataFrame, а потім на pandas DataFrame, який можна використати для побудови графіків. Так само перетворіть cluster_centers на pandas DataFrame. Коли обидва DataFrame буде створено, побудуйте діаграми розсіювання за допомогою Matplotlib.

У вашому робочому середовищі доступні SparkContext sc, змінні rdd_split_int і cluster_centers, а також пакет matplotlib.pyplot (імпортований як plt).

Ця вправа є частиною курсу

Основи Big Data з PySpark

Переглянути курс

Інструкції до вправи

  • Перетворіть RDD rdd_split_int на Spark DataFrame, а потім на pandas DataFrame.
  • Створіть pandas DataFrame зі списку cluster_centers.
  • Побудуйте діаграму розсіювання з 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()
Редагувати та запускати код