Clusters visualiseren
Je hebt zojuist het k-means-model getraind met een optimale k-waarde (k=16) en clustercentra (centroiden) gegenereerd. In deze laatste oefening visualiseer je de clusters en de centroiden door ze over elkaar heen te leggen. Zo zie je hoe goed de clustering heeft gewerkt (idealiter zijn de clusters duidelijk van elkaar te onderscheiden en liggen de centroiden in het midden van hun respectieve clusters).
Om dit te doen zet je eerst de RDD rdd_split_int om naar een Spark DataFrame en daarna naar een pandas DataFrame dat je kunt gebruiken om te plotten. Op dezelfde manier zet je cluster_centers om naar een pandas DataFrame. Zodra beide DataFrames zijn gemaakt, maak je spreidingsdiagrammen met Matplotlib.
De SparkContext sc en de variabelen rdd_split_int en cluster_centers, en het pakket matplotlib.pyplot (geïmporteerd als plt) zijn beschikbaar in je workspace.
Deze oefening maakt deel uit van de cursus
Big Data Fundamentals met PySpark
Oefeninstructies
- Zet de RDD
rdd_split_intom naar een Spark DataFrame en daarna naar een pandas DataFrame. - Maak een pandas DataFrame van de lijst
cluster_centers. - Maak een spreidingsdiagram van het pandas DataFrame met ruwe data (
rdd_split_int_df_pandas) en leg daar een spreidingsdiagram overheen van het pandas DataFrame met centroiden (cluster_centers_pandas).
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()