Ein Beispiel, bei dem sich die Ausgabe des k-Medoid-Algorithmus von der Ausgabe des k-Mittelwert-Algorithmus unterscheidet

10

Ich verstehe den Unterschied zwischen k medoid und k means. Aber können Sie mir ein Beispiel mit einem kleinen Datensatz geben, bei dem sich die k-Medoid-Ausgabe von der k-Mittelwert-Ausgabe unterscheidet?

schlaff
quelle

Antworten:

13

k-medoid basiert auf Medoiden (einem Punkt, der zum Datensatz gehört), die durch Minimieren des absoluten Abstands zwischen den Punkten und dem ausgewählten Schwerpunkt berechnet werden, anstatt den quadratischen Abstand zu minimieren. Infolgedessen ist es robuster gegenüber Rauschen und Ausreißern als k-means.

Hier ist ein einfaches, erfundenes Beispiel mit 2 Clustern (ignorieren Sie die umgekehrten Farben). Kmeans vs. Kmedoids

Wie Sie sehen können, unterscheiden sich die Medoide und Zentroide (von k-means) in jeder Gruppe geringfügig. Beachten Sie außerdem, dass Sie bei jedem Ausführen dieser Algorithmen aufgrund der zufälligen Startpunkte und der Art des Minimierungsalgorithmus leicht unterschiedliche Ergebnisse erhalten. Hier ist ein weiterer Lauf:

Geben Sie hier die Bildbeschreibung ein

Und hier ist der Code:

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
quelle
1
@frc, wenn Sie der Meinung sind, dass die Antwort einer Person falsch ist, bearbeiten Sie sie nicht, um sie zu korrigieren. Sie können einen Kommentar hinterlassen (sobald Ihr Repräsentant> 50 ist) und / oder abstimmen. Am besten veröffentlichen Sie Ihre eigene Antwort mit den Ihrer Meinung nach korrekten Informationen (siehe hier ).
Gung - Reinstate Monica
2
K-Medoide minimieren einen willkürlich gewählten Abstand (nicht unbedingt einen absoluten Abstand) zwischen Clusterelementen und dem Medoid. Tatsächlich verwendet die oben verwendete pamMethode (eine beispielhafte Implementierung von K-Medoiden in R) standardmäßig den euklidischen Abstand als Metrik. K-means verwendet immer den quadratischen Euklidischen. Die Medoide in K-Medoiden werden aus den Clusterelementen ausgewählt, nicht aus einem ganzen Punktraum als Schwerpunkte in K-Mitteln.
Hannafrc
1
Ich habe nicht genug Ruf, um einen Kommentar abzugeben, wollte aber erwähnen, dass die Handlungen von Ilanmans Antwort einen Fehler enthalten: Er hat den gesamten Code ausgeführt, sodass die Daten geändert wurden. Wenn Sie nur den Clustering-Teil des Codes ausführen, sind die Cluster ziemlich stabil und für PAM stabiler als für k-means.
Julien Colomb
6

Ein Medoid muss Mitglied des Sets sein, ein Schwerpunkt nicht.

Zentroide werden normalerweise im Zusammenhang mit festen, kontinuierlichen Objekten diskutiert, aber es gibt keinen Grund zu der Annahme, dass für die Erweiterung auf diskrete Stichproben der Schwerpunkt ein Mitglied des ursprünglichen Satzes sein müsste.

headdab
quelle
1

Sowohl k-means- als auch k-medoids-Algorithmen teilen den Datensatz in k Gruppen auf. Außerdem versuchen beide, den Abstand zwischen Punkten desselben Clusters und einem bestimmten Punkt, der das Zentrum dieses Clusters darstellt, zu minimieren. Im Gegensatz zum k-means-Algorithmus wählt der k-medoids-Algorithmus Punkte als Zentren aus, die zum Dastaset gehören. Die häufigste Implementierung des Clustering-Algorithmus für k-Medoids ist der PAM-Algorithmus (Partitioning Around Medoids). Der PAM-Algorithmus verwendet eine gierige Suche, die möglicherweise nicht die globale optimale Lösung findet. Medoide sind gegenüber Ausreißern robuster als Zentroide, benötigen jedoch mehr Berechnungen für hochdimensionale Daten.

Christos Karatsalos
quelle