Un ejemplo en el que la salida del algoritmo k-medoide es diferente a la salida del algoritmo k-means

10

Entiendo la diferencia entre k medoid yk significa. Pero, ¿puede darme un ejemplo con un pequeño conjunto de datos donde la salida k medoid es diferente de k significa salida.

rechoncho
fuente

Respuestas:

13

k-medoid se basa en medoides (que es un punto que pertenece al conjunto de datos) calculando minimizando la distancia absoluta entre los puntos y el centroide seleccionado, en lugar de minimizar la distancia al cuadrado. Como resultado, es más robusto al ruido y valores atípicos que k-means.

Aquí hay un ejemplo simple y artificial con 2 grupos (ignore los colores invertidos) Kmeans vs. Kmedoids

Como puede ver, los medoides y centroides (de k-medias) son ligeramente diferentes en cada grupo. También debe tener en cuenta que cada vez que ejecuta estos algoritmos, debido a los puntos de partida aleatorios y la naturaleza del algoritmo de minimización, obtendrá resultados ligeramente diferentes. Aquí hay otra carrera:

ingrese la descripción de la imagen aquí

Y aquí está el código:

library(cluster)
x <- rbind(matrix(rnorm(100, mean = 0.5, sd = 4.5), ncol = 2),
           matrix(rnorm(100, mean = 0.5, sd = 0.1), ncol = 2))
colnames(x) <- c("x", "y")

# using 2 clusters because we know the data comes from two groups cl <- kmeans(x, 2) kclus <- pam(x,2)
par(mfrow=c(1,2)) plot(x, col = kclus$clustering, main="Kmedoids Cluster") points(kclus$medoids, col = 1:3, pch = 10, cex = 4) plot(x, col = cl$cluster, main="Kmeans Cluster") points(cl$centers, col = 1:3, pch = 10, cex = 4)

ilanman
fuente
1
@frc, si cree que la respuesta de alguien es incorrecta, no la edite para corregirla. Puede dejar un comentario (una vez que su representante sea> 50), y / o votar a favor. Su mejor opción es publicar su propia respuesta con lo que cree que es la información correcta (cf, aquí ).
gung - Restablece a Monica
2
K-medoides minimiza una distancia elegida arbitrariamente (no necesariamente una distancia absoluta) entre los elementos agrupados y el medoide. En realidad, el pammétodo (un ejemplo de implementación de K-medoides en R) utilizado anteriormente, por defecto utiliza la distancia euclidiana como una métrica. K-means siempre usa el cuadrado Euclidiano. Los medoides en K-medoides se eligen de los elementos del grupo, no de un espacio de puntos completo como centroides en K-medias.
hannafrc
1
No tengo suficiente reputación para comentar, pero quería mencionar que hay un error en las tramas de la respuesta de Ilanman: ejecutó todo el código, de modo que se modificaron los datos. Si ejecuta solo la parte de agrupación del código, los grupos son bastante estables, por cierto, más estables para PAM que para k-means.
Julien Colomb
6

Un medoide tiene que ser miembro del conjunto, un centroide no.

Los centroides generalmente se discuten en el contexto de objetos sólidos y continuos, pero no hay razón para creer que la extensión a muestras discretas requeriría que el centroide sea un miembro del conjunto original.

headdab
fuente
1

Los algoritmos k-means y k-medoids están dividiendo el conjunto de datos en k grupos. Además, ambos intentan minimizar la distancia entre los puntos del mismo grupo y un punto particular que es el centro de ese grupo. A diferencia del algoritmo k-means, el algoritmo k-medoids elige puntos como centros que pertenecen al dastaset. La implementación más común del algoritmo de agrupamiento de k-medoides es el algoritmo de Particionamiento alrededor de Medoides (PAM). El algoritmo PAM utiliza una búsqueda codiciosa que puede no encontrar la solución óptima global. Los medoides son más robustos a los valores atípicos que los centroides, pero necesitan más cómputo para datos de alta dimensión.

Christos Karatsalos
fuente