У меня есть матрица NxM со значениями, которые варьируются от 0 до 20. Я легко получаю тепловую карту с помощью Matplotlib и pcolor. Теперь я хотел бы применить иерархическую кластеризацию и дендрограмму с использованием scipy. Я хотел бы переупорядочить каждое измерение (строки и столбцы), чтобы показать, какой элемент подобен (в соответствии с результатом кластеризации). Если матрица будет квадрат (NxN) код будет что-то вроде:Иерархическая кластеризация Heatmap в python
clustering = linkage(matrix, method="average")
dendrogram(clustering, orientation='right')
Как я могу получить матрицу сцепления, когда размеры различны? Должен ли я каждый раз вычислять каждое расстояние между каждой парой элементов?
Посмотрите документацию на 'linkage' функции http://docs.scipy.org/doc/scipy-0.14. 0/ссылка/полученные/scipy.cluster.hierarchy.linkage.html # scipy.cluster.hierarchy.linkage. 'linkage' не берет вашу матрицу наблюдений, а матрицу расстояний. Поэтому вам сначала нужно выбрать подходящую дистанционную меру и вычислить матрицу попарных расстояний. – cel
Я просто положил это на github: https://github.com/WarrenWeckesser/heatmapcluster –