Jaccard相似指数简单解释


Jaccard 相似度指数是两个数据集之间相似度的度量。

Paul Jaccard开发,该指数范围从 0 到 1。越接近 1,两个数据集越相似。

Jaccard相似指数计算如下:

杰卡德相似度=(两组中的观察值数量)/(任意一组中的观察值数量)

或者,写成记号形式:

J(A, B) = |A∩B| / |A∪B|

如果两个数据集具有完全相同的成员,则它们的 Jaccard 相似度指数将为 1。反之,如果它们没有共同的成员,则它们的相似度将为 0。

以下示例展示了如何计算几个不同数据集的 Jaccard 相似度指数。

示例 1:Jaccard 相似度

假设我们有以下两组数据:

 A = [0, 1, 2, 5, 6, 8, 9]
B = [0, 2, 3, 4, 5, 7, 9]

为了计算它们之间的杰卡德相似度,我们首先找到两个集合中的观察总数,然后除以任一集合中的观察总数:

  • 两者的观测值数量: {0,2,5,9} = 4
  • 任一观察值的数量: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} = 10
  • 杰卡德相似度: 4/10 = 0.4

Jaccard 相似度指数结果为0.4

示例 2:Jaccard 相似度(续)

假设我们有以下两组数据:

 C = [0, 1, 2, 3, 4, 5]
D = [6, 7, 8, 9, 10]

为了计算它们之间的杰卡德相似度,我们首先找到两个集合中的观察总数,然后除以任一集合中的观察总数:

  • 两者的观察数: {} = 0
  • 任一观察值的数量: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} = 11
  • 杰卡德相似度: 0/11 = 0

Jaccard 相似度指数结果为0 。这表明这两个数据集不共享任何共同的成员。

示例 3:字符的 Jaccard 相似度

请注意,我们还可以对包含字符而不是数字的数据集使用 Jaccard 相似度索引。

例如,假设我们有以下两组数据:

 E = ['cat', 'dog', 'hippo', 'monkey']
F = ['monkey', 'rhino', 'ostrich', 'salmon']

为了计算它们之间的杰卡德相似度,我们首先找到两个集合中的观察总数,然后除以任一集合中的观察总数:

  • 两者的观察数量: {‘monkey’} = 1
  • 其中之一的观察数: {‘cat’, ‘dog’, hippopotamus’, ‘monkey’, ‘rhino’, ‘ostrich’, ‘salmon’} = 7
  • 杰卡德相似度: 1/7 = 0.142857

Jaccard 相似度指数为0.142857 。这个数字相当低,这表明这两个集合有很大不同。

杰卡德距离

杰卡德距离衡量两个数据集之间的差异,计算公式如下:

杰卡德距离 = 1 – 杰卡德相似度

这种测量让我们了解两组数据有多么不同或者它们有多么不同

例如,如果两个数据集的 Jaccard 相似度为 80%,那么它们的 Jaccard 距离将为 1 – 0.8 = 0.2 或 20%。

其他资源

以下教程解释了如何使用不同的统计软件计算Jaccard相似度:

如何在R中计算Jaccard相似度
如何用Python计算Jaccard相似度

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注