Я выбрал быстрый случайный пример, похожий на ваш, и столкнулся с той же проблемой.В строке документации написано:
Выполняет иерархическую / агломерационную кластеризацию на сжатой матрице расстояний y.y должен быть: math: {n \choose 2}
размерный вектор, где n - количество исходных наблюдений, спаренных в матрице расстояний.
Однако, после быстрого просмотра кода, кажется, что цель заключается вон работает как с векторным, так и с матричным кодом: в hierachy.py есть переключатель, основанный на форме матрицы.Однако кажется, что ключевой бит информации находится в строке документации связки функций:
- Q : ndarray
A condensed or redundant distance matrix. A condensed
distance matrix is a flat array containing the upper
triangular of the distance matrix. This is the form that
``pdist`` returns. Alternatively, a collection of
:math:`m` observation vectors in n dimensions may be passed as
a :math:`m` by :math:`n` array.
Так что я думаю, что интерфейс не позволяет передавать матрицу расстояний.Вместо этого он думает, что вы передаете ему m
векторов наблюдения в n измерениях.Отсюда и разница в результате?
Это кажется разумным?
Иначе просто взгляните на сам код, я уверен, что вы сможете отладить его и выяснить, почему ваши примерыразные.
Ура Мэтт