Я пытаюсь выполнить иерархическую кластеризацию для моего массива MFCC 'signal_mfcc', который представляет собой массив с размерами (198, 12). 198 аудиокадров / наблюдение и 12 коэффициентов / измерений?
Я использую случайный порог «250» с «расстоянием» для критерия, как показано ниже:
thresh = 250
print(signal_mfcc.shape)
clusters = hcluster.fclusterdata(signal_mfcc, thresh, criterion="distance")
С указанным порогом выходная переменная 'cluster' представляет собой последовательность [1 1 1 ... 1] длиной 198 или (198,), которая, как я предполагаю, направляет все данные в один кластер.
Затем я использую pyplot для построения scatter () со следующим кодом:
# plotting
print(*(signal_mfcc.T).shape)
plt.scatter(*np.transpose(signal_mfcc), c=clusters)
plt.axis("equal")
title = "threshold: %f, number of clusters: %d" % (thresh) len(set(clusters)))
plt.title(title)
plt.show()
Вывод:
plt.scatter(*np.transpose(signal_mfcc), c=clusters)
TypeError: scatter() got multiple values for argument 'c'
Диаграмма рассеяния не будет отображаться. Какие-нибудь подсказки к тому, что могло пойти не так?
Заранее спасибо!