Zacznij terazZacznij za darmo

Wizualizacja klastrów

Przed chwilą wytrenowano model k-średnich z optymalną wartością k (k=16) i wygenerowano centra klastrów (centroidy). W tym ostatnim ćwiczeniu zwizualizujesz klastry i centroidy, nakładając je na siebie. Pozwoli to ocenić jakość grupowania – w idealnym przypadku klastry powinny być wyraźnie od siebie oddzielone, a centroidy powinny znajdować się w środku swoich klastrów.

Aby to osiągnąć, najpierw przekonwertujesz RDD rdd_split_int na Spark DataFrame, a następnie na DataFrame biblioteki pandas, który można wykorzystać do tworzenia wykresów. Analogicznie przekonwertujesz cluster_centers na DataFrame biblioteki pandas. Po utworzeniu obu DataFrame'ów stworzysz wykresy punktowe przy użyciu Matplotlib.

W obszarze roboczym dostępne są: SparkContext sc, zmienne rdd_split_int i cluster_centers oraz pakiet matplotlib.pyplot (zaimportowany jako plt).

To ćwiczenie jest częścią kursu

Podstawy Big Data z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Przekonwertuj RDD rdd_split_int na Spark DataFrame, a następnie na DataFrame biblioteki pandas.
  • Utwórz DataFrame biblioteki pandas z listy cluster_centers.
  • Stwórz wykres punktowy na podstawie DataFrame pandas z surowymi danymi (rdd_split_int_df_pandas) i nałóż na niego wykres punktowy z DataFrame pandas centroidów (cluster_centers_pandas).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod