Null集之间的Jaccard相似性

时间:2016-11-30 09:19:45

标签: set similarity

我想基于标准代码列表的存在/不存在来计算两个数据集之间的Jaccard相似性。 例如(x,y,z是数据集): 数据集x和y没有任何标准代码(Null),因此我将列表值设置为零。

 x = [0,0,0] 
 y = [0,0,0] 
 z = [0,1,0] 

from sklearn.metrics import jaccard_similarity_score
jaccard_similarity_score(x,y),jaccard_similarity_score(x, z)

x和z之间的Jaccard sim是0.66(2/3)。是否有任何相似性度量来处理两个空集之间的集合交集?在我的例子中,我想将数据集x和y之间的相似性设置为0,而不是1(使用Jaccard计算)。

2 个答案:

答案 0 :(得分:1)

这取决于每种情况,但根据你的情况,我认为你应该将集合x和y的Jaccard相似性设置为1,因为正如你所说:

  

数据集x y没有任何标准代码(空)

所以有人可以争辩说x和y非常相似(它们都没有标准代码)。 在任何情况下,你应该检查分数的分母是否为零并处理它(例如,你可以给一个标志值-1)。

答案 1 :(得分:0)

两个空集之间的Jaccard相似性没有意义(除以零)。根据问题,重叠相似度(交叉点大小)可能是一个选项。或者,您可以将Jaccard相似性函数包装为两个空集,并在这种情况下返回0。

相关问题