Как вычислить кластерные назначения из матриц связи / расстояния в Scipy в Python?

если у вас есть этот вызов иерархической кластеризации в Scipy в Python:

from scipy.cluster.hierarchy import linkage
# dist_matrix is long form distance matrix
linkage_matrix = linkage(squareform(dist_matrix), linkage_method)

Тогда какой эффективный способ перейти от этого к кластерным назначениям для отдельных точек? то есть вектор длиныN гдеN количество очков, где каждая записьi номер кластера точкиiс учетом количества кластеров, порожденных заданным порогомthresh на результирующую кластеризацию?

Для пояснения: номер кластера будет кластером, в котором он находится после применения порога к дереву. В этом случае вы получите уникальный кластер для каждого конечного узла для кластера, в котором он находится. Уникальный в том смысле, что каждая точка принадлежит одному «наиболее специфическому кластеру», который определяется порогом, в котором вы обрезаете дендрограмму.

я знаю этоscipy.cluster.hierarchy.fclusterdata дает вам это кластерное назначение в качестве возвращаемого значения, но я начинаю с пользовательской матрицы расстояний и метрики расстояния, поэтому я не могу использоватьfclusterdata, Вопрос сводится к тому, как я могу вычислить, чтоfclusterdata такое вычисления - кластерные назначения?

Ответы на вопрос(2)

Ваш ответ на вопрос