He estado trabajando en un proyecto que consiste en utilizar el clustering de K-means para generar paletas adaptativas a partir de imágenes. Entiendo el proceso general de clustering de K-means, y entiendo la razón para usar la siembra de K-means++, pero el algoritmo de inicialización me confunde un poco.
Aquí está el algoritmo tomado de Wikipedia para una referencia rápida:
- Elija un centro uniformemente al azar entre los puntos de datos.
- Para cada punto de datos $x$ , computa $D(x)$ la distancia entre $x$ y el centro más cercano que ya ha sido elegido.
- Elegir un nuevo punto de datos al azar como nuevo centro, utilizando una distribución de probabilidad ponderada donde un punto $x$ se elige con probabilidad proporcional a $D(x^2)$ .
- Repita los pasos 2 y 3 hasta que $k$ se han elegido los centros.
- Ahora que se han elegido los centros iniciales, se procede a utilizar la agrupación estándar de k-means.
La parte que me hace tropezar es el paso 3. Si lo que he entendido es correcto, la siembra de K-means++ tiene como objetivo repartir los clusters iniciales para mejorar los resultados de los clusters y también para mejorar el tiempo de convergencia. Me cuesta entender la distribución de probabilidad ponderada proporcional a la distancia al cuadrado. Lo primero que pensé fue que los clusters iniciales después del primero se repartirían lo máximo posible, pero tengo la sensación de que eso no es del todo correcto debido a $x$ que se elige proporcionalmente a la distancia al cuadrado.
Se agradece cualquier ayuda, ¡gracias!