Visualización de grupos
Acabas de entrenar el modelo k-medias con un valor k
óptimo (k=16
) y de generar centros del grupo (centroides). En este último ejercicio visualizarás los grupos y los centroides superponiéndolos. Esto indicará lo bien que ha funcionado el agrupamiento (lo ideal es que los grupos sean distintos, y los centroides deben estar en el centro de sus respectivos grupos).
Para conseguir esto, primero convertirás el RDD rdd_split_int
en un DataFrame de Spark y, a continuación, a Pandas DataFrame, para que pueda utilizarse para trazar gráficos. Del mismo modo, convertirás cluster_centers
a Pandas DataFrame. Una vez creados los dos DataFrames, crearás diagramas de dispersión utilizando Matplotlib.
sc
de SparkContext, así como las variables rdd_split_int
y cluster_centers
y el paquete matplotlib.pyplot
(importado como plt
) están disponibles en tu espacio de trabajo.
Este ejercicio forma parte del curso
Fundamentos de big data con PySpark
Instrucciones de ejercicio
- Convierte el RDD
rdd_split_int
en un DataFrame de Spark y, a continuación, a pandas DataFrame. - Crea pandas DataFrame a partir de la lista
cluster_centers
. - Crea un diagrama de dispersión a partir de pandas DataFrame de datos sin procesar (
rdd_split_int_df_pandas
) y superponle un diagrama de dispersión a partir de Pandas DataFrame de centroides (cluster_centers_pandas
).
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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()