Я не могу понять, как иерархическая кластеризация SciPy вычисляет расстояние между исходными точками или кластерами в дендрограмме.Расчет расстояния в иерархической кластеризации «полная» связь
import scipy.cluster.hierarchy as hclus
import numpy
import cPickle
distmatrix = cPickle.load(open("mydistmatrix.pkl", "rb"))
print distmatrix
dendogram = hclus.linkage(distmatrix, method="complete")
numpy.savetxt("mydendogram.txt", dendogram, fmt='%.1f')
DistMatrix как указано ниже, правильно напечатан. Я также печатаю файл mydendogram.txt, о котором я не могу понять.
Матрица расстояний. Я добавила i- как номер строки, это не часть матрицы.
0- [[ 0 11 68 60 60 60 61 7 17 73]
1- [11 0 68 52 52 51 55 17 6 73]
2- [68 68 0 90 90 91 94 73 73 6]
3- [60 52 90 0 10 11 36 62 55 92]
4- [60 52 90 10 0 2 36 63 55 92]
5- [60 51 91 11 2 0 36 63 54 93]
6- [61 55 94 36 36 36 0 63 57 96]
7- [ 7 17 73 62 63 63 63 0 11 68]
8- [17 6 73 55 55 54 57 11 0 68]
9- [73 73 6 92 92 93 96 68 68 0]]
Dendogram - Я приложил номер шага я и новый узел п + я в конце для удобства чтения, а не часть dendogram.
0 - 4.0 5.0 3.6 2.0 - 10
1 - 2.0 9.0 13.7 2.0 - 11
2 - 1.0 8.0 15.0 2.0 - 12
3 - 0.0 7.0 15.7 2.0 - 13
4 - 3.0 10.0 17.6 3.0 - 14
5 - 12.0 13.0 33.1 4.0 - 15
6 - 6.0 14.0 66.9 4.0 - 16
7 - 15.0 16.0 148.1 8.0 - 17
8 - 11.0 17.0 208.9 10.0 - 18
Теперь я могу понять, узел 4 и 5 будут объединены сначала, как расстояние между ними является самым маленьким в расстоянии матрице, но расстояние в матрице 2, но в 3,6 dendogram. Аналогичным образом расстояние между узлами 2 и 9 равно 6, но дендрограмма показывает 13.7. Максимальное расстояние составляет 208,9 дендрограммы, даже если максимальное число в матрице расстояния равно 96. Кажется, что порядок слияния верен, но я не понимаю, как вычисляется расстояние, и это важно для меня, чтобы определить подходящий пункт, чтобы сократить дерево до получить кластеры. Документация (http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage) не помогает.
Просьба пояснить.
Найдено решение в другом месте, в смежных вопросах (который не появлялся на поиске) - http://stackoverflow.com/questions/18952587/use-distance-matrix-in-scipy-cluster-hierarchy-linkage?rq=1 – mlworker