【发布时间】:2016-02-20 13:42:03
【问题描述】:
import scipy.spatial.distance as dist
Y=[[1,2,3],[2,3,4]]
Q=dist.pdist(Y,'jaccard')
print Q
下面的 sn-p 给出的 jaccard 距离为1,而它应该是0.5。
另一方面,如果Y=[[1,2,3],[4,2,3]] 即如果更改了顺序,则输出为 0.33。但是杰卡德距离与元素的顺序无关。您能在此处建议如何解决此问题吗?
【问题讨论】:
-
docs 不是很清楚,但他们认为排序很重要:他们说 Jaccard 距离是“那些元素 u[i] 和 v[i] 的比例不同意”,我理解这是两个元素的固定 i 。那将与您的结果一致。不管怎样,你检查过他们源代码中的实现吗?
-
jaccard函数 (docs.scipy.org/doc/scipy/reference/generated/…) 的文档字符串给出了更好的描述。jaccard计算 boolean 数组的 Jaccard-Needham 相异度。它对其他数组类型的行为没有定义,所以你不应该传入任意整数的数组。