Jak stworzyć ładny wykres wyników analizy skupień k-średnich?


77

Używam R, aby wykonać grupowanie K-oznacza. Używam 14 zmiennych do uruchomienia K-średnich

  • Jaki jest ładny sposób na wykreślenie wyników K-średnich?
  • Czy są jakieś istniejące wdrożenia?
  • Czy posiadanie 14 zmiennych komplikuje wykreślanie wyników?

Znalazłem coś o nazwie GGcluster, które wygląda fajnie, ale wciąż jest w fazie rozwoju. Przeczytałem też coś o mapowaniu sammon, ale nie zrozumiałem tego zbyt dobrze. Czy to byłaby dobra opcja?


1
Jeśli z jakiegoś powodu martwisz się obecnymi rozwiązaniami tego bardzo praktycznego problemu, rozważ dodanie komentarzy do istniejących odpowiedzi lub zaktualizuj swój post, dodając więcej kontekstu. Ważną informacją jest tutaj praca z 40 000 przypadków.
chl

Kolejny przykład z 11 klasami i 10 zmiennymi znajduje się na stronie 118 elementów uczenia statystycznego ; niezbyt pouczające.
denis

biblioteka (animacja) kmeans.ani (yourData, center = 2)
Kartheek Palepu

Odpowiedzi:


27

W tym celu wykorzystałbym wykres sylwetki, ponieważ jest mało prawdopodobne, aby uzyskać wiele przydatnych informacji z wykresów par, gdy liczba wymiarów wynosi 14.

library(cluster)
library(HSAUR)
data(pottery)
km    <- kmeans(pottery,3)
dissE <- daisy(pottery) 
dE2   <- dissE^2
sk2   <- silhouette(km$cl, dE2)
plot(sk2)

To podejście jest wysoko cytowane i dobrze znane ( wyjaśnienie znajduje się tutaj ).

Rousseeuw, PJ (1987) Silhouettes: Graficzna pomoc w interpretacji i walidacji analizy skupień . J. Comput. Appl. Matematyka , 20 , 53–65.


Lubię to. Przyjrzę się temu dalej. Dziękuję Ci.
JEquihua

@ user603: Czy chciałbyś podać sedno wyjaśnienia w swojej odpowiedzi? Link, który podałeś 2,5 roku temu, wygasł. Artykuł jest nadal dostępny, ale fajne byłoby krótkie wprowadzenie do tej techniki.
Steen,

Link wskazywał na papier (był to nie-bramkowy punkt dostępowy, który rzeczywiście zgasł).
user603

Mam dziwny spisek z tym silhoette (po lewej stronie jest clusplot, a po prawej jest silhoette plot, czy jest to oczekiwane?) - i.imgur.com/ZIpPlhT.png
vipin8169 20.04.17

56

Oto przykład, który może ci pomóc:

library(cluster)
library(fpc)

data(iris)
dat <- iris[, -5] # without known classification 
# Kmeans clustre analysis
clus <- kmeans(dat, centers=3)
# Fig 01
plotcluster(dat, clus$cluster)

# More complex
clusplot(dat, clus$cluster, color=TRUE, shade=TRUE, 
         labels=2, lines=0)

# Fig 03
with(iris, pairs(dat, col=c(1:3)[clus$cluster])) 

Na podstawie tego ostatniego wykresu możesz zdecydować, które ze zmiennych początkowych chcesz wykreślić. Może 14 zmiennych jest ogromnych, więc możesz wypróbować analizę głównego składnika (PCA) przed, a następnie użyć pierwszych dwóch lub trzech składników z PCA do przeprowadzenia analizy skupień.


1
Nie jestem w stanie dowiedzieć się, jak interpretować dc1 i dc2? Czy możesz wskazać mi właściwy kierunek?
UD1989

1
@Upasana Datta: Te dwa składniki są wynikiem zastosowania podstawowej analizy składników (PCA, funkcja princomp) do danych. Są to liniowe kombinacje zmiennych wejściowych, które odpowiadają za większość zmienności obserwacji.
rakensi

Cześć, zastanawiam się, w jaki sposób elipsa jest obliczana w 2. fabule? Jak określa „te dwa składniki wyjaśniają 95,81% zmienności punktowej”?
mynameisJEFF

@mynameisJEFF Zakładałbym, że używa ukrytych / kanonicznych zmiennych, wartości elektronicznych itp. Możesz sprawdzić dokumentację, ale to zwykle oznacza, że ​​widzisz biplot oznaczony jako taki. Mówi się, że 95,81% zmienności danych jest wyjaśnione przez 2 ukryte zmienne, na których wykreślane są dane. Aktualizacja - właśnie go przejrzałem i rzeczywiście używa głównych składników.
Hack-R

Dlaczego potrzebujesz tutaj „z”? Opuszczenie tej pairsfunkcji byłoby prostsze .
Anatolii Stepaniuk

4

Najprostszy znany mi sposób to:

X <- data.frame(c1=c(0,1,2,4,5,4,6,7),c2=c(0,1,2,3,3,4,5,5))
km <- kmeans(X, center=2)
plot(X,col=km$cluster)
points(km$center,col=1:2,pch=8,cex=1)

W ten sposób możesz narysować punkty każdej gromady, używając innego koloru i ich centroidów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.