什么是Jaccard 相似度(Jaccard Similarity)

文章目录

      • [✅ 定义:](#✅ 定义:)
      • [📌 取值范围:](#📌 取值范围:)
      • [🔍 举例说明:](#🔍 举例说明:)
      • [🧠 应用场景:](#🧠 应用场景:)
      • [⚠️ 局限性:](#⚠️ 局限性:)
      • [💡 扩展概念:](#💡 扩展概念:)

Jaccard 相似度(Jaccard Similarity) 是一种用于衡量两个集合之间相似程度的指标,广泛应用于信息检索、文本挖掘、推荐系统和自然语言处理等领域。


✅ 定义:

给定两个集合 A A A 和 B B B,Jaccard 相似度定义为它们的交集大小与并集大小的比值:

Jaccard Similarity ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ \text{Jaccard Similarity}(A, B) = \frac{|A \cap B|}{|A \cup B|} Jaccard Similarity(A,B)=∣A∪B∣∣A∩B∣

  • ∣ A ∩ B ∣ |A \cap B| ∣A∩B∣:集合 A A A 和 B B B 中共同元素的数量
  • ∣ A ∪ B ∣ |A \cup B| ∣A∪B∣:集合 A A A 和 B B B 中所有不同元素的总数

📌 取值范围:

  • Jaccard 相似度的取值范围在 0 到 1 之间:
    • 0:表示两个集合没有交集,完全不相似;
    • 1:表示两个集合完全相同,完全相似。

🔍 举例说明:

假设:

  • A = { apple , banana , orange } A = \{\text{apple}, \text{banana}, \text{orange}\} A={apple,banana,orange}
  • B = { banana , grape , orange , pear } B = \{\text{banana}, \text{grape}, \text{orange}, \text{pear}\} B={banana,grape,orange,pear}

那么:

  • A ∩ B = { banana , orange } A \cap B = \{\text{banana}, \text{orange}\} A∩B={banana,orange} → 大小为 2
  • A ∪ B = { apple , banana , orange , grape , pear } A \cup B = \{\text{apple}, \text{banana}, \text{orange}, \text{grape}, \text{pear}\} A∪B={apple,banana,orange,grape,pear} → 大小为 5

计算:

Jaccard Similarity ( A , B ) = 2 5 = 0.4 \text{Jaccard Similarity}(A, B) = \frac{2}{5} = 0.4 Jaccard Similarity(A,B)=52=0.4


🧠 应用场景:

  1. 文本相似度比较:将两段文本视为词集合,计算它们的 Jaccard 相似度,判断内容是否相似。
  2. 关键词匹配:比较两个文档或查询的关键词集合之间的重合度。
  3. 推荐系统:评估用户兴趣集合之间的相似性。
  4. 模型输出分析:如你之前提到的内容中,用来比较 LLM 不同层前后映射出的 top-k token 的变化情况。
  5. 数据去重/聚类:识别重复或高度相似的数据项。

⚠️ 局限性:

  • 不考虑频率:Jaccard 只关心元素是否存在,不考虑出现次数(即它是基于集合而不是多重集合或多袋模型 bag-of-words)。
  • 对大规模集合计算效率低:当集合很大时,计算交集和并集可能较慢。

💡 扩展概念:

  • Jaccard 距离 :用来衡量两个集合的不相似程度,公式为:
    Jaccard Distance = 1 − Jaccard Similarity \text{Jaccard Distance} = 1 - \text{Jaccard Similarity} Jaccard Distance=1−Jaccard Similarity

  • Tanimoto 系数:有时也被称作 Jaccard 相似度,但通常用于向量空间中的一种扩展形式。

相关推荐
2501_9248785926 分钟前
强光干扰下漏检率↓78%!陌讯动态决策算法在智慧交通违停检测的实战优化
大数据·深度学习·算法·目标检测·视觉检测
无风听海2 小时前
行向量和列向量在神经网络应用中的选择
人工智能·深度学习·神经网络·行向量·列向量
能力越小责任越小YA3 小时前
服务器(Linux)新账户搭建Pytorch深度学习环境
人工智能·pytorch·深度学习·环境搭建
电商API大数据接口开发Cris3 小时前
Go 语言并发采集淘宝商品数据:利用 API 实现高性能抓取
前端·数据挖掘·api
A7bert7774 小时前
【YOLOv5部署至RK3588】模型训练→转换RKNN→开发板部署
c++·人工智能·python·深度学习·yolo·目标检测·机器学习
Coovally AI模型快速验证5 小时前
YOLOv8-SMOT:基于切片辅助训练与自适应运动关联的无人机视角小目标实时追踪框架
人工智能·深度学习·yolo·计算机视觉·目标跟踪·无人机
wan5555cn6 小时前
AI 时代“驯导师”职业发展方向探究
大数据·人工智能·笔记·深度学习
山烛8 小时前
深度学习入门:神经网络
人工智能·深度学习·神经网络·bp神经网络·前向传播
lxmyzzs10 小时前
【图像算法 - 23】工业应用:基于深度学习YOLO12与OpenCV的仪器仪表智能识别系统
人工智能·深度学习·opencv·算法·计算机视觉·图像算法·仪器仪表识别
Learn Beyond Limits10 小时前
Multi-output Classification and Multi-label Classification|多输出分类和多标签分类
人工智能·深度学习·神经网络·算法·机器学习·分类·吴恩达