Visualisera kluster
Du har precis tränat k-means-modellen med ett optimalt k-värde (k=16) och genererat klustercentra (centroider). I den här avslutande övningen ska du visualisera klustren och centroiderna genom att lägga dem ovanpå varandra. Det visar hur väl klustring fungerade – idealt sett ska klustren vara tydligt åtskilda och centroiderna placerade i mitten av sina respektive kluster.
För att åstadkomma detta konverterar du först RDD:n rdd_split_int till en Spark DataFrame och sedan till en pandas DataFrame som kan användas för plottning. På samma sätt konverterar du cluster_centers till en pandas DataFrame. När båda DataFrames är skapade skapar du spridningsdiagram med Matplotlib.
SparkContext:en sc samt variablerna rdd_split_int och cluster_centers, och paketet matplotlib.pyplot (importerat som plt) finns tillgängliga i din arbetsyta.
Den här övningen är en del av kursen
Grunderna i Big Data med PySpark
Övningsinstruktioner
- Konvertera RDD:n
rdd_split_inttill en Spark DataFrame och sedan till en pandas DataFrame. - Skapa en pandas DataFrame från listan
cluster_centers. - Skapa ett spridningsdiagram från pandas DataFrame:n med rådata (
rdd_split_int_df_pandas) och lägg ovanpå det ett spridningsdiagram från pandas DataFrame:n med centroider (cluster_centers_pandas).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()