Vizualizace clusterů
Právě jsi natrénoval/a model k-means s optimální hodnotou k (k=16) a vygeneroval/a středy clusterů (centroidy). V tomto závěrečném cvičení vizualizuješ clustery a centroidy tak, že je zobrazíš přes sebe. To naznačí, jak dobře clustering fungoval – ideálně by měly být clustery od sebe zřetelně oddělené a centroidy by měly ležet uprostřed svých clusterů.
Nejprve převedeš RDD rdd_split_int na Spark DataFrame a pak na pandas DataFrame, který lze použít pro vykreslení. Obdobně převedeš cluster_centers na pandas DataFrame. Jakmile budou oba DataFrames připravené, vytvoříš bodové grafy pomocí Matplotlib.
V prostředí máš k dispozici SparkContext sc, proměnné rdd_split_int a cluster_centers a balíček matplotlib.pyplot (importovaný jako plt).
Toto cvičení je součástí kurzu
Big Data Fundamentals with PySpark
Pokyny k cvičení
- Převeď RDD
rdd_split_intna Spark DataFrame a poté na pandas DataFrame. - Vytvoř pandas DataFrame ze seznamu
cluster_centers. - Vytvoř bodový graf z pandas DataFrame se surovými daty (
rdd_split_int_df_pandas) a přes něj vykresli bodový graf z pandas DataFrame s centroidy (cluster_centers_pandas).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()