Dado que aparentemente esta es ahora una pregunta canónica, y aún no se ha mencionado aquí:
Una extensión natural de k-means para usar métricas de distancia que no sean la distancia euclidiana estándar en es usar el truco del kernel . Esto se refiere a la idea de mapear implícitamente las entradas a un espacio de Hilbert dimensional alto o infinito, donde las distancias corresponden a la función de distancia que queremos usar, y ejecutar el algoritmo allí. Es decir, dejar que sea un mapa de características tal que la métrica deseada pueda escribirse , ejecutamos k-means en los puntos . En muchos casos, no podemos calcular el mapa explícitamente, pero que puedoRdφ:Rp→Hdd(x,y)=∥φ(x)−φ(y)∥H{φ(xi)}φcalcule el núcleo . No todas las métricas de distancia se ajustan a este modelo, pero muchas lo hacen, y hay funciones definidas en cadenas, gráficos, imágenes, distribuciones de probabilidad y más ...k(x,y)=⟨φ(x),φ(y)⟩H
En esta situación, en el algoritmo de k-medias estándar (Lloyd's), podemos asignar fácilmente puntos a sus grupos, pero representamos los centros de los grupos de forma implícita (como combinaciones lineales de los puntos de entrada en el espacio de Hilbert). Encontrar la mejor representación en el espacio de entrada requeriría encontrar una media de Fréchet , que es bastante costosa. Por lo tanto, es fácil obtener asignaciones de clúster con un núcleo, más difícil obtener los medios.
El siguiente artículo analiza este algoritmo y lo relaciona con la agrupación espectral:
I. Dhillon, Y. Guan y B. Kulis. Kernel k-means, agrupación espectral y cortes normalizados. KDD 2005.