Zuweisen von Klassenbezeichnungen zu k-means-Clustern

10

Ich habe eine sehr grundlegende Frage zum Clustering. Wie interpretiere ich die Klassen der Datenpunkte, die ich geclustert habe (nachdem ich jedem Cluster aussagekräftige Klassenbezeichnungen zugewiesen habe), nachdem ich k Cluster mit ihren Schwerpunkten gefunden habe? Ich spreche nicht von der Validierung der gefundenen Cluster.

Kann dies bei einem kleinen beschrifteten Satz von Datenpunkten durchgeführt werden? Berechnen Sie, zu welchem ​​Cluster diese beschrifteten Punkte gehören, und entscheiden Sie anhand des Typs und der Anzahl der Punkte, die jeder Cluster erhält, über die Beschriftung. Dies scheint ziemlich offensichtlich zu sein, aber ich weiß nicht, wie Standard es ist, Clustern auf diese Weise Labels zuzuweisen.

Um es klar auszudrücken, möchte ich unbeaufsichtigtes Clustering durchführen, bei dem keine Labels verwendet werden, um zuerst meine Cluster zu finden. Nachdem ich die Cluster gefunden habe, möchte ich den Clustern anhand der Eigenschaften einiger Beispieldatenpunkte aussagekräftige Klassenbezeichnungen zuweisen.

Riyaz
quelle
Ich bin mir nicht sicher, ob ich Ihre Frage verstehe: Normalerweise sollte jeder k-means-Algorithmus Informationen zur Klassenmitgliedschaft für jeden Datenpunkt zurückgeben. Sprechen Sie über tatsächliche Datenpunkte oder neue Beobachtungen?
Chl
@chi Ich vermute Riyaz über die Suche betrifft Namen , mit denen die Cluster zu beschriften und spricht von vornherein einige der Punkte zu benennen und dann einige Algorithmus verwendet , die dann diese Cluster , um das Übergewicht der genannten Punkte in den Clustern der Auffassung zu nennen.
Glen_b -State Monica
2
@Riyaz, könnten wir die folgende Analogie zur Faktoranalyse verwenden, um Ihre Frage zu verstehen? Oft wird jemand eine Reihe von Variablen faktoriell analysieren, um sie in Gruppen von Variablen zu gruppieren, die scheinbar zusammenhalten. Dann muss der Analyst jedoch über die Art der Variablen nachdenken, aus denen jeder Cluster besteht, für den er einen Namen hat Ich denke darüber nach, was jeder Cluster (Faktor) ist . Ist es im Wesentlichen das, was Sie hier erreichen?
Gung - Reinstate Monica

Antworten:

4

Ja. Was Sie vorschlagen, ist völlig Standard und es ist die Art und Weise, wie Standard-k-means-Software automatisch funktioniert. Im Fall von k-means berechnen Sie den euklidischen Abstand zwischen jeder Beobachtung (Datenpunkt) und jedem Clustermittelwert (Schwerpunkt) und ordnen die Beobachtungen dem ähnlichsten Cluster zu. Dann wird die Bezeichnung des Clusters bestimmt, indem die durchschnittlichen Eigenschaften der Beobachtungen, die dem Cluster zugeordnet sind, im Verhältnis zu den Durchschnittswerten derjenigen im Verhältnis zu den anderen Clustern untersucht werden.

Tim
quelle
3

Wenn Sie sich die Namen in Ihrem kmeans-Objekt ansehen, werden Sie feststellen, dass es ein "Cluster" -Objekt gibt. Dies enthält die Klassenbezeichnungen, die genauso wie Ihre Eingabedaten bestellt wurden. Hier ist ein einfaches Beispiel, das die Cluster-Labels wieder an Ihre Daten bindet.

x <- data.frame(X=rnorm(100, sd=0.3), Y=rnorm(100, mean=1, sd=0.3))

k <- kmeans(x, 2) 
names(k)
x <- data.frame(x, K=k$cluster)

# You can also directly return the clusters
x <- data.frame(x, K=kmeans(x, 2)$cluster)
Jeffrey Evans
quelle
0

Die Bezeichnungen für den Cluster können auf der Klasse der Mehrheitsstichproben innerhalb eines Clusters basieren. Dies gilt jedoch nur, wenn die Anzahl der Cluster gleich der Anzahl der Klassen ist.

user101780
quelle