Як створити гарний графік результатів кластерного аналізу k-означає?


77

Я використовую R для кластеризації K-засобів. Я використовую 14 змінних для запуску K-засобів

  • Який досить спосіб побудувати результати K-засобів?
  • Чи існують якісь реалізації?
  • Чи має 14 змінних ускладнення побудови результатів?

Я знайшов щось під назвою GGcluster, яке виглядає круто, але воно ще в розробці. Я також читав щось про картографування саммона, але не дуже добре його розумів. Це було б хорошим варіантом?


1
Якщо ви чомусь переймаєтесь теперішніми рішеннями цієї дуже практичної проблеми, будь ласка, подумайте про додавання коментарів до існуючих відповідей або оновіть свою публікацію з більшою кількістю контексту. Робота з 40 000 випадків є важливою інформацією тут.
chl

Інший приклад з 11 класами та 10 змінними - на сторінці 118 Елементів статистичного навчання ; не страшно інформативний.
denis

бібліотека (анімація) kmeans.ani (yourData, центри = 2)
Kartheek Palepu

Відповіді:


27

Я б підштовхнув сюжет силуету для цього, оскільки навряд чи ви отримаєте багато корисної інформації з парних сюжетів, коли кількість вимірів дорівнює 14.

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

Такий підхід дуже цитували і добре відомі (див тут для пояснення).

Rousseeuw, PJ (1987) Силуети: графічна допомога інтерпретації та валідації кластерного аналізу . J. Comput. Додаток Математика. , 20 , 53-65.


Мені подобається це. Я далі загляну в це. Дякую.
JEquihua

@ user603: Ви б хотіли дати зміст пояснення у своїй відповіді? Посилання, яке ви дали 2,5 роки тому, загинуло. Стаття все ще є, але короткий вступ до цієї методики було б непогано.
Стін

Посилання вказувало на папір (це була точка без доступу, яка справді потемніла).
user603

У мене дивний сюжет із цим силуетом (ліворуч - це кластер, а праворуч - сюжет силуету, це очікується?) - i.imgur.com/ZIpPlhT.png
vipin8169

56

Ось приклад, який може вам допомогти:

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])) 

На основі останнього сюжету ви можете вирішити, яку з початкових змінних побудувати. Можливо, 14 змінних є величезними, тому ви можете спробувати аналіз основних компонентів (PCA) раніше, а потім використовувати перші два-три компоненти з PCA для проведення кластерного аналізу.


1
Я не можу зрозуміти, як інтегрувати dc1 і dc2? Не могли б ви вказати мене в правильному напрямку?
UD1989

1
@Upasana Datta: Два компоненти є результатом застосування принципового аналізу компонентів (PCA, функція princomp) до даних. Вони являють собою лінійні комбінації вхідних змінних, які пояснюють більшість варіабельності спостережень.
rakensi

Привіт, я спантеличений тим, як обчислюється еліпс у другому сюжеті? Як воно визначає, "ці два компоненти пояснюють 95,81% мінливості балів"?
mynameisJEFF

@mynameisJEFF Я б припустив, що він використовує приховані / канонічні змінні, eignvalues ​​тощо. Ви можете перевірити документацію, але це зазвичай те, що це означає, коли ви бачите біплот, позначений як такий. Це говорить про те, що 95,81% варіацій даних пояснюється двома прихованими змінними, на яких описуються дані. Оновлення - я просто закрутив його і, дійсно, він використовує основні компоненти.
Hack-R

Навіщо вам тут "з"? Худіше було б просто залишити pairsфункцію.
Анатолій Степанюк

4

Найпростіший спосіб, який я знаю, це зробити:

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)

Таким чином ви можете намалювати точки кожного кластера, використовуючи різний колір та їх центроїди.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.