IniziaInizia gratis

Visualizzare i cluster

Hai appena addestrato il modello k-means con un valore ottimale di k (k=16) e generato i centri dei cluster (centroidi). In questo esercizio finale, visualizzerai i cluster e i centroidi sovrapponendoli. Questo ti aiuterà a capire quanto bene ha funzionato il clustering (idealmente, i cluster dovrebbero essere distinti tra loro e i centroidi dovrebbero trovarsi al centro dei rispettivi cluster).

Per farlo, prima convertirai l’RDD rdd_split_int in uno Spark DataFrame, e poi in un DataFrame Pandas utilizzabile per il plotting. In modo analogo, convertirai cluster_centers in un DataFrame Pandas. Una volta creati entrambi i DataFrame, genererai dei grafici a dispersione con Matplotlib.

Nel tuo ambiente di lavoro sono disponibili lo SparkContext sc, le variabili rdd_split_int e cluster_centers, e il pacchetto matplotlib.pyplot (importato come plt).

Questo esercizio fa parte del corso

Fondamenti di Big Data con PySpark

Visualizza il corso

Istruzioni dell'esercizio

  • Converte l’RDD rdd_split_int in uno Spark DataFrame, quindi in un DataFrame pandas.
  • Crea un DataFrame pandas dalla lista cluster_centers.
  • Crea uno scatter plot dal DataFrame pandas dei dati grezzi (rdd_split_int_df_pandas) e sovrapponilo a uno scatter plot dal DataFrame Pandas dei centroidi (cluster_centers_pandas).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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()
Modifica ed esegui il codice