No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Resolviendo con K-means

21/27
Recursos

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Asi queda lindo

data = [
    (sum_of_squared_distances, 'Elbow Method WCSS'),
    (silhouette_scores, 'Elbow Method Silhouette Coefficient')
]

fig, axes = plt.subplots(1, 2, figsize=(18, 8))

for i, (values, title) in enumerate(data):
    sns.lineplot(ax=axes[i], x=K, y=values, linestyle='dashed', marker='o', markersize=10, color='b')
    axes[i].set_xlabel('K')
    axes[i].set_ylabel('Inertia' if i == 0 else 'Silhouette Coefficient')
    axes[i].set_title(title, size=15)

El coeficiente de silueta mide cuán similar es cada punto a su propio cluster en comparación con otros clusters cercanos. Un valor de coeficiente de silueta más alto indica una mejor separación entre los clusters. Sin embargo, es posible que obtengas un valor alto de coeficiente de silueta incluso si el número de clusters no es el óptimo. Esto puede suceder si los datos tienen estructuras complejas o superpuestas que hacen que los puntos se agrupen de manera razonable incluso con un número incorrecto de clusters.

Con PCA

- Sin PCA

Me gusta mas como queda así: ```js fig, axes = plt.subplots(2, 1, figsize=(8, 8)) # Gráfico 1: Suma de cuadrados de las distancias axes[0].plot(K, sum_quare_of_distances, 'bx-') axes[0].set_xlabel('K') axes[0].set_ylabel('Suma de cuadrados de las distancias') axes[0].set_title('Suma de cuadrados de las distancias en función de K') # Gráfico 2: Puntuación de silueta axes[1].plot(K, silhouette_scores, 'rx-') axes[1].set_xlabel('K') axes[1].set_ylabel('Puntuación de silueta') axes[1].set_title('Puntuación de silueta en función de K') plt.tight_layout() plt.show() ```fig, axes = plt.subplots(2, 1, figsize=(8, 8)) \# Gráfico 1: Suma de cuadrados de las distanciasaxes\[0].plot(K, sum\_quare\_of\_distances, 'bx-')axes\[0].set\_xlabel('K')axes\[0].set\_ylabel('Suma de cuadrados de las distancias')axes\[0].set\_title('Suma de cuadrados de las distancias en función de K') \# Gráfico 2: Puntuación de siluetaaxes\[1].plot(K, silhouette\_scores, 'rx-')axes\[1].set\_xlabel('K')axes\[1].set\_ylabel('Puntuación de silueta')axes\[1].set\_title('Puntuación de silueta en función de K') plt.tight\_layout()plt.show()

Para los que les sale el siguiente error:

FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
  super()._check_params_vs_input(X, default_n_init=10)

Deben agregar un parametro llamado n_init:

for _ in K:
    km = KMeans(n_clusters = _, n_init=10)