Я вычислил матрицу подобия jaccard с Python. Я хочу сгруппировать наивысшее сходство с наименьшим, однако, независимо от того, какую функцию связи я использую, он создает ту же самую дендрограмму! У меня такое чувство, что функция предполагает, что моя матрица имеет исходные данные, но я уже вычислил первую матрицу подобия. Есть ли способ передать эту матрицу подобия до дендрограммы, чтобы она правильно отображалась? Или мне придется выводить матрицу и просто делать это с R. Передача исходных исходных данных невозможна, поскольку я вычисляю сходство слов. Спасибо за помощь!Dendrogram через scipy с учетом матрицы подобия
Вот код:
SimMatrix = [[ 0.,0.09259259, 0.125 , 0. , 0.08571429],
[ 0.09259259, 0. , 0.05555556, 0. , 0.05128205],
[ 0.125 , 0.05555556, 0. , 0.03571429, 0.05882353],
[ 0. , 0. , 0.03571429, 0. , 0. ],
[ 0.08571429, 0.05128205, 0.05882353, 0. , 0. ]]
linkage = hcluster.complete(SimMatrix) #doesnt matter what linkage...
dendro = hcluster.dendrogram(linkage) #same plot for all types?
show()
Если запустить этот код, вы увидите дендрограммы, который полностью назад. Независимо от того, какой тип связи я использую, он создает ту же самую дендрограмму. Это интуитивно не может быть правильным!
Разве вы не хватает некоторых запятых, 'в списке списков? –
Да, ха-ха, жаль, что я напечатал матрицу, затем скопировал и вставил! Это не проблема. –
Возможно, также укажите, что вы, по-видимому, использовали 'import scipy.cluster.hierarchy как hcluster' и, конечно, на самом деле для построения чего-либо требуется' matplotlib'. – tripleee