Un esempio in cui l'output dell'algoritmo k-medoid è diverso dall'output dell'algoritmo k-mean


11

Comprendo la differenza tra k medoid e k significa. Ma puoi darmi un esempio con un piccolo set di dati in cui l'output k medoid è diverso da k significa output.

Risposte:


14

k-medoid si basa sui medoidi (che è un punto che appartiene al set di dati) calcolando minimizzando la distanza assoluta tra i punti e il centroide selezionato, piuttosto che minimizzare la distanza quadrata. Di conseguenza, è più resistente al rumore e ai valori anomali rispetto ai k-media.

Ecco un semplice esempio inventato con 2 cluster (ignora i colori invertiti) Kmeans vs. Kmedoids

Come puoi vedere, i medoidi e i centroidi (di k-medie) sono leggermente diversi in ciascun gruppo. Inoltre, dovresti notare che ogni volta che esegui questi algoritmi, a causa dei punti di partenza casuali e della natura dell'algoritmo di minimizzazione, otterrai risultati leggermente diversi. Ecco un'altra corsa:

inserisci qui la descrizione dell'immagine

Ed ecco il codice:

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)


1
@frc, se ritieni che la risposta di qualcuno sia errata, non modificarla per correggerla. Puoi lasciare un commento (una volta che il tuo rappresentante è> 50), e / o downvote. La tua migliore opzione è di pubblicare la tua risposta con quelle che ritieni siano le informazioni corrette (vedi qui ).
gung - Ripristina Monica

2
I medoidi K minimizzano una distanza scelta arbitrariamente (non necessariamente una distanza assoluta) tra gli elementi raggruppati e il medoide. In realtà il pammetodo (un'implementazione esemplificativa di K-medoidi in R) usato sopra, di default usa la distanza euclidea come metrica. K-mean usa sempre il quadrato euclideo. I medoidi in K-medoid sono scelti tra gli elementi del cluster, non in uno spazio di punti interi come centroidi in K-medie.
hannafrc,

1
Non ho abbastanza reputazione per commentare, ma volevo menzionare che c'è un errore nelle trame della risposta di Ilanman: ha eseguito l'intero codice, in modo che i dati siano stati modificati. Se esegui solo la parte di clustering del codice, i cluster sono piuttosto stabili, più stabili per PAM che per k-way.
Julien Colomb,

6

Un medoide deve essere un membro dell'insieme, un centroide no.

I centroidi sono in genere discussi nel contesto di oggetti solidi e continui, ma non c'è motivo di credere che l'estensione a campioni discreti richiederebbe che il centroide sia un membro dell'insieme originale.


1

Entrambi gli algoritmi k-mean e k-medoids stanno suddividendo il set di dati in k gruppi. Inoltre, stanno entrambi cercando di ridurre al minimo la distanza tra i punti dello stesso cluster e un punto particolare che è il centro di quel cluster. Contrariamente all'algoritmo k-mean, l'algoritmo k-medoids sceglie i punti come centri che appartengono al dastaset. L'implementazione più comune dell'algoritmo di clustering k-medoids è l'algoritmo Partitioning Around Medoids (PAM). L'algoritmo PAM utilizza una ricerca avida che potrebbe non trovare la soluzione ottimale globale. I medoidi sono più robusti dei valori anomali rispetto ai centroidi, ma hanno bisogno di più calcoli per dati ad alta dimensione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.