LoslegenKostenlos loslegen

Cluster visualisieren

Du hast gerade das k-Means-Modell mit dem optimalen k-Wert (k=16) trainiert und Clusterzentren (Zentroiden) erstellt. In dieser letzten Übung visualisierst du die Cluster und die Zentren, indem du sie übereinanderlegst. So erkennst du, wie gut das Clustering funktioniert hat. (Im Idealfall sollten sich die Cluster voneinander unterscheiden und die Zentren jeweils in der Mitte der Cluster liegen.)

Zu diesem Zweck konvertierst du den RDD rdd_split_int zunächst in einen Spark-DataFrame und dann in einen pandas-DataFrame, der für die Erstellung des Diagramms verwendet werden kann. Auf ähnliche Weise konvertierst du cluster_centers in einen pandas-DataFrame. Sobald die beiden DataFrames erstellt sind, generierst du mit Matplotlib Streudiagramme.

Der SparkContext sc, die Variablen rdd_split_int und cluster_centers sowie das Paket matplotlib.pyplot (importiert als plt) sind im Arbeitsbereich verfügbar.

Diese Übung ist Teil des Kurses

Grundlagen von Big Data mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Konvertiere den RDD rdd_split_int in einen Spark-DataFrame und dann in einen pandas-DataFrame.
  • Erstelle einen pandas-DataFrame aus der Liste cluster_centers.
  • Erstelle ein Streudiagramm aus dem pandas-DataFrame mit Rohdaten (rdd_split_int_df_pandas) und überlagere es mit einem Streudiagramm aus dem pandas-DataFrame mit den Zentroiden (cluster_centers_pandas).

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()
Code bearbeiten und ausführen