2 votos

Necesito un poco de ayuda para entender la siembra de K-means++

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:

  1. Elija un centro uniformemente al azar entre los puntos de datos.
  2. Para cada punto de datos $x$ , computa $D(x)$ la distancia entre $x$ y el centro más cercano que ya ha sido elegido.
  3. 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)$ .
  4. Repita los pasos 2 y 3 hasta que $k$ se han elegido los centros.
  5. 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!

1voto

user74132 Puntos 9

Sólo conozco lo básico del funcionamiento de K-means, pero tu intuición parece correcta. Tomado de la página de wikipedia:

La intuición detrás de este enfoque es que la dispersión de los k centros de cluster iniciales es algo bueno.

Por ello, el algoritmo opta por grandes distancias entre los clusters durante la inicialización. El paso 3 describe una distribución de probabilidad ponderada $ \propto D(x^2)$ Así que yo asumiría esto:

  • Toma las distancias que has calculado en el paso 2.
  • Toma su plaza.
  • Calcula su suma.
  • Dividir cada distancia al cuadrado en la suma para adquirir una distribución de probabilidad según el cuadrado de las distancias.

Salud.

0voto

spdrnl Puntos 959

En el tercer paso, debería decir $D(x)^2$ . Un breve ejemplo revelará la esencia, que se resume en: favorecer los puntos que tienen una gran distancia de los centros de cluster existentes, dando una buena dispersión sobre los datos.

Digamos que hay tres puntos con los que D es 1, 2, 3. Los cuadrados son 1, 4, 9. El total de los cuadrados es 15. Ahora haz una muestra según las proporciones 1/15, 4/15 y 9/15 para elegir un nuevo centro. Como verás, el punto con distancia 3 tiene 9 veces más probabilidades de ser seleccionado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X