¿Cuál es el mejor algoritmo de agrupamiento adaptativo k-means (que k se elige automáticamente)?

Como señaló Amir, no hay nada llamado método “Mejor”, ya que es bastante subjetivo. Depende del problema comercial y la viabilidad técnica. Desde el punto de vista de la implementación, esta es la solución.

Estas son las medidas que se pueden usar para evaluar la K óptima para la agrupación de KMeans:

  1. Método de codo: considere medidas como la distancia intragrupo, la relación de la distancia intra e inter clúster, y desarrolle un mecanismo para determinar el primer punto de inflexión: el punto codo (depende del usuario, puede ser el último en caso de que se prefieran más grupos)
  2. Puntaje de Silhoutte: Obtenga puntajes de Silhoutte en R o Python y siga el paso para encontrar el punto óptimo.
  3. Suma de la distancia al cuadrado: Python KMeans tiene un atributo llamado inercia_ que proporciona esta medida.
  4. Calcule los criterios de información baysianos y encuentre un K algorítmico-aliado óptimo como se señaló en el paso 1.

Espero que esto ayude.

Como en cualquier problema en el análisis de datos, no existe un método “mejor”, depende de los datos y de su objetivo. Existen métodos para k-means cuya solución considera tanto la calidad de la agrupación como la cantidad de agrupaciones.

¿Qué es lo que quieres lograr con tu agrupación?

Es muy difícil proporcionar una respuesta porque la mejor respuesta es “depende”, ¡pero todos sabemos que no es una respuesta en absoluto!

Con muy poca información sobre el problema, diría que mi intuición tiende a dividir K-means como la respuesta a su problema. Es una variante de K-Means y no necesita especificar “k” como en K-means normal, pero debe decidir cuándo dejar de bisecar, en otras palabras, debe especificar qué es un buen grupo y qué es No es un buen grupo. Los grupos que no son buenos se dividirán en dos grupos y los grupos que ya son buenos se mantendrán, este proceso se repite hasta que todos los grupos sean buenos.