Agrupación como reducción de dimensionalidad

10

Estoy leyendo un libro "Aprendizaje automático con chispa" de Nick Pentreath, y en la página 224-225 el autor discute sobre el uso de K-means como una forma de reducción de dimensionalidad.

Nunca he visto este tipo de reducción de dimensionalidad, ¿tiene un nombre o / y es útil para formas específicas de datos ?

Cito el libro que describe el algoritmo:

Supongamos que agrupamos nuestros vectores de características de alta dimensión utilizando un modelo de agrupación K-means, con k agrupaciones. El resultado es un conjunto de k centros de clúster.

Podemos representar cada uno de nuestros puntos de datos originales en términos de cuán lejos está de cada uno de estos centros de agrupación. Es decir, podemos calcular la distancia de un punto de datos a cada centro de clúster. El resultado es un conjunto de k distancias para cada punto de datos.

Estas k distancias pueden formar un nuevo vector de dimensión k. Ahora podemos representar nuestros datos originales como un nuevo vector de dimensión inferior, en relación con la dimensión de entidad original.

El autor sugiere una distancia gaussiana.

Con 2 grupos para datos bidimensionales, tengo lo siguiente:

K-significa:

K-medias con 2 grupos

Aplicando el algoritmo con la norma 2:

norma 2

Aplicando el algoritmo con una distancia gaussiana (aplicando dnorm (abs (z)):

Gaussiano

Código R para las imágenes anteriores:

set.seed(1)
N1 = 1000
N2 = 500
z1 = rnorm(N1) + 1i * rnorm(N1)
z2 = rnorm(N2, 2, 0.5) + 1i * rnorm(N2, 2, 2)
z = c(z1, z2)

cl = kmeans(cbind(Re(z), Im(z)), centers = 2)

plot(z, col = cl$cluster)

z_center = function(k, cl) {
  return(cl$centers[k,1] + 1i * cl$centers[k,2])
}

xlab = "distance to cluster center 1"
ylab = "distance to cluster center 2"

out_dist = cbind(abs(z - z_center(1, cl)), abs(z - z_center(2, cl)))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")

out_dist = cbind(dnorm(abs(z - z_center(1, cl))), dnorm(abs(z - z_center(2, cl))))
plot(out_dist, col = cl$cluster, xlab = xlab, ylab = ylab)
abline(a=0, b=1, col = "blue")
ahstat
fuente
1
Tenga en cuenta que, en su ejemplo, no se produce una reducción de dimensionalidad ya que sus datos eran bidimensionales para empezar, y lo está mapeando en 2 nuevas dimensiones (las distancias a cada uno de sus 2 grupos). Para reducir la dimensionalidad de sus datos, debe usar menos clústeres que el número de dimensiones originales en los datos.
Ruben van Bergen
Sí, hice todo esto en 2D para permitir trazar la imagen inicial y dejar que todos vean la remodelación; entonces no es reducción de dimensionalidad en ese caso. La forma de salida es similar para los datos muestreados de manera similar en 3D y con 2 grupos.
ahstat
44
Me gusta el hecho de que enfatiza la distancia desde los centros de agrupación. Demasiados analistas de datos discretizan los datos y pierden información al agruparlos en grupos "distintos".
Frank Harrell

Respuestas:

6

Creo que este es el "método centroide" (o el método "centroidQR" estrechamente relacionado) descrito por Park, Jeon y Rosen . Del resumen de tesis de Moon-Gu Jeon :

Nuestro método Centroide proyecta datos dimensionales completos en el espacio centroide de sus clases, lo que proporciona una tremenda reducción dimensional, reduciendo el número de dimensiones al número de clases mientras mejora la estructura de clases original. Una de sus propiedades interesantes es que incluso cuando se usan dos medidas de similitud diferentes, los resultados de la clasificación para el espacio dimensional completo y reducido formado por el Centroide son idénticos cuando se aplica la clasificación basada en centroide. El segundo método, llamado CentroidQR, es una variante de nuestro método Centroid, que utiliza como espacio de proyección, k columnas de la matriz ortogonal Q de la descomposición QR de la matriz centroide.

También parece ser equivalente al método de "grupo múltiple" del análisis factorial .

Leo Martins
fuente
3

Mire toda la literatura sobre indexación basada en pivote .

Pero ganas poco usando k-means. Por lo general, puede usar puntos aleatorios como pivotes. Si elige lo suficiente, no serán todos similares.

HA SALIDO - Anony-Mousse
fuente
¿Puedes explicar por qué "ganas poco usando k-means"? Gracias
Tagar
Porque los resultados no parecen ser mejores que con pivotes aleatorios.
HA SALIDO - Anony-Mousse
¡Gracias! ¿puede actualizar su respuesta con un enlace a la técnica de "indexación basada en pivote"? Supongo que es lo mismo que "usar puntos aleatorios como pivotes". Traté de buscar en Google, pero no estoy seguro de si lo que obtengo está directamente relacionado con este enfoque de K-means descrito en P.
Tagar
2

Hay varias formas de utilizar la agrupación como reducción de dimensiones. Para las medias K, también puede proyectar los puntos (ortogonalmente) en el espacio vectorial (o afín) generado por los centros.

Benoit Sanchez
fuente