я использую K-medoids алгоритм pam
сделать кластеризацию на основе (симметричной) матрицы расстояний, tmp
ниже:Как получить координаты точек и кластерные метки из R clusplot()
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)
У меня есть читать here, что clusplot
использует cmdscale
и princomp
, что имеет смысл. Однако порядок операций не указан.
Как я могу получить координаты Component1 и Component2 вместе с их метками кластера и идентификаторами точек с вывода clusplot
? Я хочу иметь доступ к ним, чтобы изменить/занести их в ggplot.
Я предполагаю, что построение так или иначе связаны с информацией силуэт, но не совсем понимаю, как мы доберемся до конечного участка ниже:
Вы можете получить доступ к коду функции (т. Е. «Edit (cluster ::: clusplot.default)») –
@ Паскаль, спасибо - я просто смотрел на код на самом деле. Это выглядит больно длинным. Возможно, мне лучше подумать о том, как его реализовать. – Rhubarb