【问题标题】:scipy linkage with a given distance matrix具有给定距离矩阵的 scipy 链接
【发布时间】:2019-07-22 02:28:10
【问题描述】:

我有一个非常大的稀疏矩阵(几百万行,500 列)。 我已经计算了一个 5000X5000 的距离矩阵。 我需要使用scipy.cluster.hierarchy.linkage 根据这个矩阵得到聚类。 我知道linkage 接受自定义函数,但是再次计算这个距离矩阵非常耗时。
如何告诉 scipy 使用矩阵的距离? 我试过了

dist = my_dist(X) # numpy array ndim = 2
linkage(X, metric=lambda x: dist[x,y])

但传递的x,y 是值而不是索引。

【问题讨论】:

    标签: scipy hierarchical-clustering linkage


    【解决方案1】:

    如果将距离矩阵表示为"condensed" distance matrix,则可以将距离矩阵传递给linkage。您可以使用scipy.spatial.squareformdist 转换为压缩表示。

    类似这样的:

    from scipy.spatial.distance import squareform
    
    dist = my_dist(X)
    condensed_dist = squareform(dist)
    linkresult = linkage(condensed_dist)
    

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 1970-01-01
      • 2014-07-28
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多