Красим с помощью R кластеры дерева иерархической кластеризации
Выделим в дереве иерархической кластеризации кластеры и красиво их раскрасим.
hc <- hclust(dist, method="complete")
dend.c <- as.dendrogram(hc)
plot(hc)
plot(dend.c)
Дендрограмма выглядит более аккуратной.
В построенном дереве выделяютя кластеры: три явных, остальные проявляются по мере спуска.
Красим кластеры
Расскрасим кластеры. Это позволит их увидеть перед нарезкой. Для раскраски необходима палитра хорошо отличающихся цветов.
Палитра
Палитру сгенерируем при помощи библиотеки paletteer.
library(paletteer)
Палитра бывает трех типов: расходящаяся непрерывная, последовательная непрерывная и дискретная. (Не ручаюсь за точность перевода; в оригинале: diverging, sequential, discrete.)
В расходящейся непрерывной палитре есть центр и два крайних значения. Ее используют для визуализации данных с центральным значением. Например палитра синий, белый, красный расходящаяся.
Последовательная непрерывная палитра простирается от одного крайнего значения к другому. Ее используют для визуализации непрерывно возрастающих или убывающих значений.
Дискретная палитра состоит из фиксированного числа цветов. Она используется для визуализации категориальных данных.
Для выделения кластеров используем дискретную категориальную палитру.
Палитру выберем из галереи.
cols <- paletteer_d("MetBrewer::Austria") cols <- paletteer_d("PrettyCols::Bold")
plot( color_branches(dend, k=num.clusters, col=cols) )
Complete linkage
Начнем со связности "complete linkage" и 5, 7, 9 кластеров.
plot( color_branches(dend.c, k=5, col=cols) )
ward.D
Теперь посмотрим на связность "ward.D".
dend.w <- as.dendrogram( hclust(dist_matrix, method = "ward.D") )
Обрежем на картинках верх, так как он очень высокий и покрасим 9 и 11 кластеров.
ward.D2
А теперь изучим связность "ward.D2".
dend.w2 <- as.dendrogram( hclust(dist_matrix, method = "ward.D2") )
21 кластер
Остановимся на 21 кластере. Посмотрим, как они выглядят на трех сгенерированных деревьях.