CommencerCommencer 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 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

Afficher le cours

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