2024-06-11 08:51:09 发布
网友
我在计算jaccard的相似性
y= 1 - scipy.spatial.distance.pdist(X,metric="jaccard")
X是一个m x n矩阵,作为这个函数的结果,我得到了一个大小为m choose 2的一维数组。如何将相似性值映射回一个对称数组或(非对称数组中的任何一种都可以),这样我就可以知道X中的哪两个向量(X中的每一行都是布尔向量)在y中生成了特定的jaccard相似性值?在
m x n
m choose 2
您可以使用^{}在完整的距离矩阵和上三角之间进行转换:
import numpy as np from scipy.spatial import distance m = 100 n = 200 X = np.random.randn(m, n) d = distance.pdist(X, metric='jaccard') print(d.shape) # (4950,) D = distance.squareform(d) print D.shape # (100, 100)
有一个称为scipy.spatial.distance.squareform(y)的模块,其中它将从scipy.spatial.distance.pdist(X,metric='jaccard')获得的压缩形式的一维矩阵转换为对称矩阵,因此从那里获得索引相对简单。在
scipy.spatial.distance.squareform(y)
scipy.spatial.distance.pdist(X,metric='jaccard')
所以我们可以做以下事情:
y=1-scipy.spatial.distance.pdist(x,metric='jaccard') z=scipy.spatial.distance.squareform(y)
X是m x n输入矩阵。 这里y将是1 x (m choose 2)维矩阵(压缩距离矩阵) z将是m x m平方对称矩阵
y
1 x (m choose 2)
z
m x m
您可以使用^{} 在完整的距离矩阵和上三角之间进行转换:
有一个称为
scipy.spatial.distance.squareform(y)
的模块,其中它将从scipy.spatial.distance.pdist(X,metric='jaccard')
获得的压缩形式的一维矩阵转换为对称矩阵,因此从那里获得索引相对简单。在所以我们可以做以下事情:
X是
m x n
输入矩阵。 这里y
将是1 x (m choose 2)
维矩阵(压缩距离矩阵)z
将是m x m
平方对称矩阵相关问题 更多 >
编程相关推荐