1
import scipy.spatial.distance as dist
Y=[[1,2,3],[2,3,4]]
Q=dist.pdist(Y,'jaccard')
print Q
以下代碼段使用pdist的Jaccard距離計算給出的Jaccard距離1
而它應該是0.5
。 另一方面,如果Y=[[1,2,3],[4,2,3]]
,即如果訂購改變輸出是0.33。但是,jaccard距離與元素的順序無關。你能建議如何解決這個問題嗎?在SciPy的
[docs](http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.spatial.distance.pdist.html)不是很清楚,但它們表明排序很重要:他們說Jaccard距離是「那些不同意的元素u [i]和v [i]的比例」,我知道這對於兩個元素都是固定的。這將同意你的結果。無論如何,你是否在他們的源代碼中檢查實現? – phfaist
'jaccard'函數的文檔字符串(http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.jaccard.html)給出了更好的描述。 'jaccard'計算*布爾*數組的Jaccard-Needham不相似度。它的其他數組類型的行爲沒有定義,所以你不應該傳遞任意整數的數組。 –
不妨將該評論轉換爲答案... –