Visualização de clusters
Você acabou de treinar o modelo k-means com um valor k
ideal (k=16
) e gerou centros de cluster (centroides). Neste exercício final, você visualizará os clusters e os centroides sobrepondo-os. Isso indicará se o clustering funcionou bem (idealmente, os clusters devem ser distintos uns dos outros e os centroides devem estar no centro de seus respectivos clusters).
Para isso, você primeiro converterá o RDD rdd_split_int
em um Spark DataFrame e, em seguida, em um Pandas DataFrame, que pode ser usado para plotagem. Da mesma forma, você converterá cluster_centers
em um Pandas DataFrame. Depois que os dois DataFrames forem criados, você criará gráficos de dispersão usando o Matplotlib.
O SparkContext sc
, bem como as variáveis rdd_split_int
e cluster_centers
e o pacote matplotlib.pyplot
(importado como plt
) estão disponíveis em seu espaço de trabalho.
Este exercício faz parte do curso
Fundamentos de Big Data com PySpark
Instruções de exercício
- Converta o RDD
rdd_split_int
em um Spark DataFrame e, em seguida, em um pandas DataFrame. - Crie um pandas DataFrame a partir da lista
cluster_centers
. - Crie um gráfico de dispersão a partir do Pandas DataFrame de dados brutos (
rdd_split_int_df_pandas
) e sobreponha-o com um gráfico de dispersão a partir do Pandas DataFrame de centroides (cluster_centers_pandas
).
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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()