Vizualizarea clusterelor
Tocmai ai antrenat modelul k-means cu o valoare optimă pentru k (k=16) și ai generat centrele de cluster (centroide). În acest exercițiu final, vei vizualiza clusterele și centroidele suprapunându-le. Acest lucru va arăta cât de bine a funcționat gruparea (în mod ideal, clusterele ar trebui să fie distincte unele față de altele, iar centroidele să se afle în centrul clusterelor respective).
Pentru a realiza acest lucru, vei converti mai întâi RDD-ul rdd_split_int într-un Spark DataFrame, apoi într-un DataFrame pandas, care poate fi folosit pentru reprezentare grafică. Similar, vei converti cluster_centers într-un DataFrame pandas. După ce ambele DataFrame-uri sunt create, vei genera grafice scatter folosind Matplotlib.
SparkContext-ul sc, variabilele rdd_split_int și cluster_centers, precum și pachetul matplotlib.pyplot (importat ca plt) sunt disponibile în spațiul tău de lucru.
Acest exercițiu face parte din cursul
Fundamentele Big Data cu PySpark
Instrucțiuni pentru exercițiu
- Convertește RDD-ul
rdd_split_intîntr-un Spark DataFrame, apoi într-un DataFrame pandas. - Creează un DataFrame pandas din lista
cluster_centers. - Creează un grafic scatter din DataFrame-ul pandas cu datele brute (
rdd_split_int_df_pandas) și suprapune peste el un grafic scatter din DataFrame-ul pandas al centroidelor (cluster_centers_pandas).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()