Как получить высоту дерева в cutree (), зная количество кластеров - PullRequest
1 голос
/ 03 июля 2019

Я использую иерархическую кластеризацию для классификации моих данных.

Я бы хотел определить оптимальное количество кластеров. Чтобы сделать это, идея состоит в том, чтобы визуализировать график, на котором ось X - это количество кластеров, а ось Y - это высота дерева в дендрограмме.

И для этого мне нужно знать высоту дерева, когда указано количество кластеров K, например, если K = 4, мне нужно знать высоту дерева после команды

cutree(hclust(dist(data), method = "ward.D"), k = 4) 

Может кто-нибудь помочь, пожалуйста?

1 Ответ

2 голосов
/ 03 июля 2019

Высота сохраняется в объекте hclust.Поскольку вы не предоставляете никаких данных, я проиллюстрирую их встроенными данными радужной оболочки.

HC = hclust(dist(iris[,1:4]), method="ward.D")
sort(HC$height)
<reduced output>
[133]   1.8215623   1.8787489   1.9240172   1.9508686   2.5143038   2.7244855
[139]   2.9123706   3.1111893   3.2054610   3.9028695   4.9516315   6.1980126
[145]   9.0114060  10.7530460  18.2425079  44.1751473 199.6204659

Самое большое значение - это высота первого разбиения.Вторым по величине является второе деление и т. Д. Вы можете увидеть, что это дает нужные вам высоты при построении графика.

plot(HC)
abline(h=10.75,col="red")

Dendrogram

Вы можете видеть, чточетвертая по величине высота соответствует высоте четвертого сплита.

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