Вывод графика из hclust () - PullRequest
0 голосов
/ 17 мая 2018

У меня есть матрица данных 300x2, то есть 300 наблюдений за 2 переменными.Используя функцию kmeans в R, я могу построить результирующие кластеры следующим образом:

data <- scale(data)
fit.kmeans <- kmeans(data, 3)
plot(data, col = fit.kmeans$cluster)

Это дает хороший 2D-график исходных данных, раскрашенных кластером.Есть ли простой способ сделать то же самое с помощью функции hclust?Или, в качестве альтернативы, есть другая функция, которая позволяет мне реализовывать различные методы кластеризации и впоследствии выводить на экран полученные кластеры?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Кластерная дендрограмма является хорошей альтернативой точечной диаграмме для иерархической кластеризации:

tree <- hclust(d = dist(x = iris[1:50, 1:4], method = "euclidean"))
cl_members <- cutree(tree = tree, k = 3)
plot(x = tree, labels =  row.names(tree), cex = 0.5)
rect.hclust(tree = tree, k = 3, which = 1:3, border = 1:3, cluster = cl_members)

enter image description here

0 голосов
/ 17 мая 2018

Каждый метод кластеризации сообщает о кластерах немного по-разному.В общем, вам нужно взглянуть на структуру, возвращаемую функцией кластеризации.

Но вы спрашиваете конкретно о hclust.Чтобы получить кластеры из hclust, вам нужно использовать функцию cutree вместе с желаемым количеством кластеров.Вот пример использования его с данными радужной оболочки.

HC = hclust(dist(iris[,1:4]))
plot(iris[,3:4], pch=20, col=cutree(HC,3))

Clusters

...