簡體   English   中英

從scipy.pdist(myArray,metric =“ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM