2016-11-20 7 views
0

Я знаю, что scipy.cluster.hierarchy сосредоточена на работе с матрицей расстояний. Но теперь у меня есть матрица подобия ... После того, как я построю ее, используя Dendrogram, происходит что-то странное. Вот код:scipy.cluster.hierarchy: метки выглядят не в правильном порядке и путаются по значению вертикальных осей

similarityMatrix = np.array(([1,0.75,0.75,0,0,0,0], 
         [0.75,1,1,0.25,0,0,0], 
         [0.75,1,1,0.25,0,0,0], 
         [0,0.25,0.25,1,0.25,0.25,0], 
         [0,0,0,0.25,1,1,0.75], 
         [0,0,0,0.25,1,1,0.75], 
         [0,0,0,0,0.75,0.75,1])) 

здесь метод связи

Z_sim = sch.linkage(similarityMatrix) 
plt.figure(1) 
plt.title('similarity') 
sch.dendrogram(
    Z_sim, 
    labels=['1','2','3','4','5','6','7'] 
) 
plt.show() 

Но вот результат:

Мой вопрос:

  1. Почему ярлык для этой дендрограммы не прав?
  2. Я даю матрицу подобия метода связи, но я не могу полностью понять, что означает вертикальные оси. Например, поскольку максимальное сходство равно 1, почему максимальное значение в вертикальных осях составляет почти 1,6?

Большое вам спасибо за помощь!

+0

извините, я не знаю, почему они дают мне ссылку на результат, а не просто показать его на этой странице ... – uniqueliu

ответ

0
  • linkage ожидает «дистанции», а не «сходства». Чтобы преобразовать матрицу нечто вроде матрицы расстояний, вы можете вычесть его из 1:

    dist = 1 - similarityMatrix 
    
  • linkage не принимает квадратную матрицу расстояний. Он ожидает, что данные о расстоянии будут находиться в "condensed" form. Вы можете получить, что с помощью scipy.spatial.distance.squareform:

    from scipy.spatial.distance import squareform 
    
    dist = 1 - similarityMatrix 
    condensed_dist = squareform(dist) 
    Z_sim = sch.linkage(condensed_dist) 
    

    (Когда вы передаете двумерный массив с формой (т, п) к linkage, он обрабатывает строки как точки в п-мерном пространстве, и вычисляет расстояния внутри .)

+0

большое спасибо ... вводя squareform FUNC, я могу сделайте ось Y правильной ... Это очень полезно ... – uniqueliu

 Смежные вопросы

  • Нет связанных вопросов^_^