Which height will result in which k for a dendrogram

Share:

Description

Which height will result in which k for a dendrogram. This helps with speeding up the cutree.dendrogram function.

Usage

1

Arguments

dend

a dendrogram.

...

not used.

Value

a vector of heights, with its names being the k clusters that will result for cutting the dendrogram at each height.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
## Not run: 
hc <- hclust(dist(USArrests[1:4,]), "ave")
dend <- as.dendrogram(hc)
heights_per_k.dendrogram(dend)
##       1        2        3        4 
##86.47086 68.84745 45.98871 28.36531 

cutree(hc, h = 68.8) # and indeed we get 2 clusters

unbranch_dend <- unbranch(dend,2)
plot(unbranch_dend)
heights_per_k.dendrogram(unbranch_dend)
       #1        3        4 
       #97.90023 57.41808 16.93594 
       # we do NOT have a height for k=2 because of the tree's structure.
       
   
library(microbenchmark)
dend = as.dendrogram(hclust(dist(iris[1:150,-5])))
dend = as.dendrogram(hclust(dist(iris[1:30,-5])))
dend = as.dendrogram(hclust(dist(iris[1:3,-5])))
microbenchmark(
   #    dendextendRcpp::heights_per_k.dendrogram(dend),
   dendextendRcpp::dendextendRcpp_heights_per_k.dendrogram(dend),
   dendextendRcpp::old_heights_per_k.dendrogram(dend)
)
# improvment is 10 times faster (in Rcpp) for a tree of size 3
# 76 times faster for a tree of size 30
# And:
# 134 times faster for a tree of size 150!!

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.