![](/img/trans.png)
[英]discrepanices when generating a distance matrix with scipy pdist(metric = 'jaccard') vs scipy jaccard
[英]Get indices of results from scipy.pdist(myArray,metric=“jaccard”) to map back to original array?
我正在嘗試計算jaccard相似度
y= 1 - scipy.spatial.distance.pdist(X,metric="jaccard")
X是一個mxn
矩陣,由於此函數,我得到一個大小為m choose 2
的一維數組, m choose 2
。 我如何將相似度值映射回以獲得對稱數組或(無論哪種方式都可以使用非對稱數組),這樣我才能知道X的哪兩個向量(X中的每一行都是布爾向量)生成了特定的jaccard相似度值在y?
您可以使用scipy.spatial.distance.squareform
在完整的mxn距離矩陣和上三角之間進行轉換:
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')
獲得的壓縮形式一維矩陣轉換為對稱矩陣,因此它將從那里獲取索引相對簡單。
因此,我們可以執行以下操作:
y=1-scipy.spatial.distance.pdist(x,metric='jaccard')
z=scipy.spatial.distance.squareform(y)
X是一個mxn
輸入矩陣。 此處y
將是1 x (m choose 2)
維矩陣(壓縮距離矩陣) z
將是mxm
正方形對稱矩陣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.