#python #numpy #scipy #hierarchical-clustering
#python #numpy #scipy #иерархическая кластеризация
Вопрос:
Я получаю ValueError: Linkage 'Z' uses the same cluster more than once.
при попытке получить плоские кластеры в Python с помощью scipy.cluster.hierarchy.fcluster. Эта ошибка возникает лишь иногда, обычно только с действительно большими матрицами, т.Е. 10000×10000.
import scipy.cluster.hierarchy as sch
Z = sch.linkage(d, method="ward")
# some computation here, returning n (usually between 5-30)
clusters = sch.fcluster(Z, t=n, criterion='maxclust')
Почему это происходит? Как я могу этого избежать? К сожалению, я не смог найти никакой полезной информации в Google…
Ошибка РЕДАКТИРОВАНИЯ возникает также при попытке получить дендрограмму. Такая ошибка не появляется, если используется method='average'
.
Ответ №1:
Кажется, что использование fastcluster вместо scipy.cluster.hierarchy
решения проблемы. Кроме того, fastcluster
реализация немного быстрее, чем scipy
.
Для получения более подробной информации взгляните на статью.
import fastcluster
Z = fastcluster.linkage(d, method="ward")
# some computation here, returning n (usually between 5-30)
clusters = fastcluster.fcluster(Z, t=n, criterion='maxclust')