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 les centres de clusters (centroïdes). Dans cet exercice final, vous allez visualiser les clusters et les centroïdes en les superposant. Cela vous permettra d'évaluer la qualité du regroupement (idéalement, les clusters devraient être distincts les uns des autres et les centroïdes devraient se trouver au centre de leurs clusters respectifs).
Pour ce faire, vous convertirez d'abord le RDD rdd_split_int en DataFrame Spark, puis en DataFrame Pandas utilisable pour la visualisation. De façon similaire, vous convertirez cluster_centers en DataFrame Pandas. Une fois les deux DataFrames créés, vous tracerez des nuages de points avec Matplotlib.
Le SparkContext sc, les variables rdd_split_int et cluster_centers, ainsi que le module matplotlib.pyplot (importé sous le nom plt) sont disponibles dans votre espace de travail.
Cette activité fait partie du cours
Principes de Big Data avec PySpark
Instructions de l’exercice
- Convertissez le RDD
rdd_split_inten DataFrame Spark, puis en DataFrame pandas. - Créez un DataFrame pandas à partir de la liste
cluster_centers. - Créez un nuage de points à partir du DataFrame pandas des données brutes (
rdd_split_int_df_pandas) et superposez-y un nuage de points provenant du DataFrame Pandas des centroïdes (cluster_centers_pandas).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()