Я пытаюсь кластеризовать набор данных временных рядов. Для этого я рассчитал попарно расстояние DTW. Эти данные собираются в матрице расстояний, которую я хотел бы использовать в качестве входных данных для метода Sklearn AgglomerativeClustering ().
Кажется, мне нужно использовать сжатую матрицу расстояний для этого. Но если я сделаю это, метод кластеризации интерпретирует каждое расстояние как новый образец, поэтому я получаю слишком много меток. Как мне правильно это сделать?
Это пример кода, который я пробовал:
import numpy as np
# Test symmetric matrix
N = 4
b = np.random.randint(0,5,size=(N,N))
b_symm = (b + b.T)/2
np.fill_diagonal(b_symm,np.zeros(N))
# Condensed matrix
condensed = squareform(b_symm)
model = AgglomerativeClustering(n_clusters=2, linkage=linkage)
y = model.fit_predict(condensed.reshape(-1,1))