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 do exercício
- Converta o RDD
rdd_split_intem 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 completando 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()