альтернатива cutree для извлечения кластера с заданным количеством объектов - PullRequest
0 голосов
/ 30 августа 2018

Хотя stats::cutree() берет hclust -объект и разделяет его на заданное количество кластеров, я ищу функцию, которая принимает заданное количество элементов и пытается установить k соответственно. Другими словами: верните первый кластер с n элементами.

Например: Поиск первого кластера с n = 9 объектами.

library(psych)
data(bfi)
x <- bfi 
hclust.res <- hclust(dist(abs(cor(na.omit(x)))))
cutree.res <- cutree(hclust.res, k = 2)
cutree.table <- table(cutree.res)
cutree.table

# no cluster with n = 9 elements
> cutree.res
 1  2 
23  5 

в то время как k = 3 дает

cutree.res <- cutree(hclust.res, k = 3)

# three clusters, whereas cluster 2 contains the required amount of objects
> cutree.table
cutree.res
 1  2  3 
14  9  5 

Есть ли более удобный способ, чем повторять это?

Спасибо

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете легко написать код для этого самостоятельно, который только один передает по дендрограмме, а не вызывает резак в цикле.

Просто выполните слияния одно за другим и запомните размеры кластеров. Тогда оставь ту, которая тебе «понравилась» больше всего.

Обратите внимание, что такого решения может не быть. Например, в одномерном наборе данных -11 -10 +10 +11, вырезание дендрограммы в порядке слияния вернет кластеры только с 1,2 или 4 элементами. Так что тебе придется заняться и этим делом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...