Esta es una implementación en Python del algoritmo k-means que incluye el método del codo y el método de la silueta para seleccionar el K óptimo.
K-means es un algoritmo de agrupación popular que se utiliza para dividir datos en K grupos. Funciona asignando iterativamente cada punto de datos al centroide del grupo más cercano y luego recalculando el centroide de cada grupo en función de los puntos de datos que se le asignaron. El proceso se repite hasta la convergencia.
El objetivo de k-medias es minimizar la suma de distancias al cuadrado entre cada punto de datos y su centroide de grupo asignado. La función objetivo se puede escribir como: i-th
punto de datos dentro del grupo j
, μj
es el centroide del grupo j
y N
es el número total de puntos de datos.
El método del codo es una heurística que se utiliza para determinar el número óptimo de grupos en la agrupación de K-Means. El método traza la suma de distancias al cuadrado entre cada observación y su centroide asignado en función del número de grupos. El punto "codo" en el gráfico indica el número de grupos donde agregar grupos adicionales no da como resultado una reducción significativa en la suma de distancias al cuadrado.
El método del codo se puede resumir en los siguientes pasos:
El método Silhouette es otra heurística utilizada para determinar el número óptimo de conglomerados en la agrupación de K-Means. El método mide la calidad de la asignación de conglomerados de cada observación calculando su coeficiente de silueta. El coeficiente de silueta varía de -1 a 1, donde un valor de 1 indica que la observación está bien agrupada y un valor de -1 indica que la observación está mal clasificada. La fórmula para calcular el coeficiente de silueta para un punto de datos i
es: a(i)
es la distancia promedio entre i
y todos los demás puntos de datos en su grupo, y b(i)
es la distancia promedio mínima entre i
y todos los demás grupos (es decir, el grupo con el siguiente centroide más cercano). El coeficiente de silueta para todo el agrupamiento es el promedio de los coeficientes de silueta para todos los puntos de datos.
El método Silhouette se puede resumir en los siguientes pasos: