scipy.cluster.hierarchy: labels seems not in the right order, and confused by the value of the vertical axes

本秂侑毒 提交于 2019-12-02 11:07:55
Warren Weckesser
  • linkage expects "distances", not "similarities". To convert your matrix to something like a distance matrix, you can subtract it from 1:

    dist = 1 - similarityMatrix
    
  • linkage does not accept a square distance matrix. It expects the distance data to be in "condensed" form. You can get that using scipy.spatial.distance.squareform:

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

    (When you pass a two-dimensional array with shape (m, n) to linkage, it treats the rows as points in n-dimensional space, and computes the distances internally.)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!