Използвам алгоритъма k-medoids pam
да се направи клъстеризиране въз основа на (симетричната) матрица на разстоянието, tmp
, По-долу:
if(!require("cluster")) { install.packages("cluster"); require("cluster") }
tmp <- matrix(tmp <- matrix(c( 0, 20, 20, 20, 40, 60, 60, 60, 100, 120, 120, 120,
20, 0, 20, 20, 60, 80, 40, 80, 120, 100, 140, 120,
20, 20, 0, 20, 60, 80, 80, 80, 120, 140, 140, 80,
20, 20, 20, 0, 60, 80, 80, 80, 120, 140, 140, 140,
40, 60, 60, 60, 0, 20, 20, 20, 60, 80, 80, 80,
60, 80, 80, 80, 20, 0, 20, 20, 40, 60, 60, 60,
60, 40, 80, 80, 20, 20, 0, 20, 60, 80, 80, 80,
60, 80, 80, 80, 20, 20, 20, 0, 60, 80, 80, 80,
100, 120, 120, 120, 60, 40, 60, 60, 0, 20, 20, 20,
120, 100, 140, 140, 80, 60, 80, 80, 20, 0, 20, 20,
120, 140, 140, 140, 80, 60, 80, 80, 20, 20, 0, 20,
120, 120, 80, 140, 80, 60, 80, 80, 20, 20, 20, 0),
nr=12, dimnames=list(LETTERS[1:12], LETTERS[1:12]))
tmp_pam <- pam(as.dist(tmp, diag = TRUE, upper = TRUE) , k=3)
tmp_pam$clusinfo # get cluster info
tmp_pam$silinfo # get silhouette information
clusplot(tmp_pam)
Аз прочетох тук че clusplot
употреби cmdscale
и princomp
, което има смисъл. Редът на операциите обаче не е посочен.
Как мога да получа координатите на Компонент1 и Компонент2 заедно с техните етикети на клъстерите и идентификатори на точки от изхода на clusplot
? Искам да имам достъп до тях, за да мога да ги променя / граф в ggplot.
Мога да предположа, че заговорът по някакъв начин е свързан с информацията за силуета, но не разбираме напълно как стигаме до последния парцел по-долу:
Отговори:
0 за отговор № 1Според документация, clusplot използва или
- Основен анализ на компонентите
- Многоизмерно мащабиране
да проектирате данните си. Вероятно зависи от това дали сте предали данни или матрица на разстояние.