Visualiser les clusters
Vous venez d'entraîner le modèle k-means avec une valeur optimale de k
(k=16
) et de générer des centres de cluster (centroïdes). Dans ce dernier exercice, vous visualiserez les clusters et les centroïdes en les superposant. Cela indiquera le degré d’efficacité du clustering (idéalement, les regroupements doivent être distincts les uns des autres et les centroïdes doivent se trouver au centre de leur cluster respectif).
Pour ce faire, vous allez d'abord convertir le RDD rdd_split_int
en DataFrame Spark, puis en DataFrame Pandas utilisable pour les graphiques. De même, vous convertirez cluster_centers
en DataFrame Pandas. Une fois les deux DataFrames créés, vous allez créer des diagrammes en nuages de points à l'aide de Matplotlib.
Le SparkContext sc
, les variables rdd_split_int
et cluster_centers
, ainsi que le paquet matplotlib.pyplot
(importé en tant que plt
) sont disponibles dans votre espace de travail.
Cet exercice fait partie du cours
Principes fondamentaux des mégadonnées avec PySpark
Instructions
- Convertissez le RDD
rdd_split_int
en DataFrame Spark, puis en DataFrame pandas. - Créez un DataFrame pandas à partir de la liste
cluster_centers
. - Créez un diagramme en nuage de points à partir du DataFrame pandas des données brutes (
rdd_split_int_df_pandas
) et superposez-le à un diagramme en nuage de points à partir du DataFrame pandas des centroïdes (cluster_centers_pandas
).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()