El algoritmo k-means++ es un gran método de agrupación que es relativamente rápido. No está garantizado que dé los mejores resultados posibles, pero si se busca un método rápido para obtener el 80%-90% de la solución, lo recomiendo encarecidamente.
A continuación se ofrece una descripción de alto nivel del documento, pero si necesita los detalles, puede probar la página de la wikipedia aquí .
Antes de empezar, puede considerar la posibilidad de escalar los puntos de datos para que no domine una dimensión. Otro parámetro que tendrá que determinar inicialmente es el número de clusters que desea. Yo suelo hacer un barrido paramétrico sobre el número de clusters.
Inicialmente, el primer centro de cluster se elige al azar entre los puntos de datos. El siguiente centro de conglomerado se elige de forma que los puntos más alejados de cualquier conglomerado tengan más probabilidades de ser elegidos. Esto continúa hasta que todos los clusters tienen un centro inicial.
Ahora que se han elegido los clusters iniciales, asigne cada punto de datos al cluster más cercano. A continuación, actualice el clúster fijándolo en la media de todos los puntos de datos asociados a él. Repita el proceso de determinar a qué clúster está asociado cada punto y de actualizar la media hasta que la ubicación de los clústeres no cambie.