Что на самом деле делает "слияние" применительно к дендрограммам в R?

У меня проблемы с пониманием того, что R функция merge точно при слиянии двух дендрограмм. Актуальный вопрос:

Как получается высота узла (слияние двух деревьев)?

Тот факт, что дендрограммы, построенные с помощью различных методов агломерации, также могут быть объединены, означает, что функция не использует обновление Lance-Williams. Это также подтверждается расщеплением корневого узла любой дендрограммы и последующим восстановлением его через merge: конечная высота не совпадает с исходной:

# data to get the dissimilarity matrix from
mydata <- matrix(c(3,4, 9,10,11)) 

# computing Euclidean distances
dissMatrix <- dist(mydata)

# hierarchical clustering through complete linkage
hc1 <- hclust(dissMatrix)

# original height
max(hc1$height)
[1] 8

# splitting the tree
hc1_children <- lapply(split(mydata, cutree(hc1, 2)), function(x) 
                                              as.dendrogram(hclust(dist(x))))

# merging the "child" dendrograms
hc1_rebuilt <- merge(hc1_children[[1]], hc1_children[[2]])

# final height
max(as.hclust(hc1_rebuilt)$height)
[1] 2.2

Любое просветление действительно ценится. Показываю как merge Работы на этом примере данных будут великолепны.

1 ответ

Решение

Что написано в файле справки:

высота высота, на которой две дендрограммы должны быть объединены. Если не указано (или NULL), значение по умолчанию на десять процентов больше, чем (больше из) двух компонентов высоты.

Другие вопросы по тегам