Przykład, w którym wynik algorytmu k-medoidu jest inny niż wynik działania algorytmu k-średnich

11

Rozumiem różnicę między k medoidą a k oznacza średnią. Ale czy możesz podać mi przykład z małym zestawem danych, w którym wyjście medoidy k jest inne niż k oznacza wyjście.

baryłkowaty
źródło

Odpowiedzi:

14

k-medoid jest oparty na medoidach (które są punktami należącymi do zbioru danych), obliczając przez minimalizowanie bezwzględnej odległości między punktami a wybranym środkiem ciężkości, zamiast minimalizować odległość kwadratową. W rezultacie jest bardziej odporny na hałas i wartości odstające niż k-średnie.

Oto prosty, wymyślony przykład z 2 klastrami (zignoruj ​​odwrócone kolory) Kmeans vs. Kmedoids

Jak widać, medoidy i centroidy (średnich k) różnią się nieznacznie w każdej grupie. Należy również pamiętać, że za każdym razem, gdy uruchamiasz te algorytmy, ze względu na losowe punkty początkowe i naturę algorytmu minimalizacji, otrzymasz nieco inne wyniki. Oto kolejny przebieg:

wprowadź opis zdjęcia tutaj

A oto kod:

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
źródło
1
@frc, jeśli uważasz, że czyjaś odpowiedź jest niepoprawna, nie edytuj jej, aby ją poprawić. Możesz zostawić komentarz (gdy twój przedstawiciel ma> 50) i / lub głosować negatywnie. Najlepszą opcją jest opublikowanie własnej odpowiedzi z poprawnymi informacjami (por. Tutaj ).
gung - Przywróć Monikę
2
K-medoidy minimalizują dowolnie wybraną odległość (niekoniecznie odległość bezwzględną) między elementami skupionymi a medoidą. W rzeczywistości pamzastosowana powyżej metoda (przykładowa implementacja K-medoidów w R) domyślnie używa odległości euklidesowej jako miary. K-oznacza zawsze używa kwadratowego euklidesa. Medoidy w K-medoidach są wybierane z elementów skupienia, a nie z przestrzeni całych punktów jako centroidy w środkach K.
hannafrc
1
Nie mam wystarczającej reputacji, aby komentować, ale chciałem wspomnieć, że w działkach odpowiedzi Ilanmana jest błąd: uruchomił cały kod, tak że dane zostały zmodyfikowane. Jeśli uruchomisz tylko część kodu dotyczącą klastrowania, klastry są dość stabilne, przy okazji bardziej stabilne dla PAM niż dla k-średnich.
Julien Colomb
6

Medoid musi być członkiem zestawu, a centroid nie.

Centroidy są zwykle omawiane w kontekście stałych, ciągłych obiektów, ale nie ma powodu sądzić, że rozszerzenie dyskretnych próbek wymagałoby, aby centroid był członkiem oryginalnego zestawu.

nakrycie głowy
źródło
1

Zarówno algorytmy k-średnich, jak i k-medoidów dzielą zestaw danych na k grup. Oboje starają się również zminimalizować odległość między punktami tego samego gromady a określonym punktem, który jest środkiem tego gromady. W przeciwieństwie do algorytmu k-średnich, algorytm k-medoidów wybiera punkty jako centra należące do dastaset. Najczęstszą implementacją algorytmu klastrowania k-medoidów jest algorytm partycjonowania wokół medoidów (PAM). Algorytm PAM wykorzystuje chciwe wyszukiwanie, które może nie znaleźć globalnego optymalnego rozwiązania. Medoidy są bardziej odporne na wartości odstające niż centroidy, ale wymagają więcej obliczeń dla danych o dużych wymiarach.

Christos Karatsalos
źródło