CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • 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 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()
Modifier et exécuter le code