Jaccard index, 又称为Jaccard相似系数(Jaccard similarity coefficient)用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。

杰卡德相似系数

两个集合A和B交集元素的个数在A、B并集中所占的比例,称为这两个集合的杰卡德系数,用符号 J(A,B) 表示。杰卡德相似系数是衡量两个集合相似度的一种指标(余弦距离也可以用来衡量两个集合的相似度)。

Python实现:

def jaccard_sim(a, b):unions = len(set(a).union(set(b)))intersections = len(set(a).intersection(set(b)))return intersections / unionsa = ['x', 'y']
b = ['x', 'z', 'v']
print(jaccard_sim(a, b))

杰卡德距离

杰卡德距离(Jaccard Distance) 是用来衡量两个集合差异性的一种指标,它是杰卡德相似系数的补集,被定义为1减去Jaccard相似系数。

杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

根据jaccard相似度可知,AB两个人一共看了五部哈利波特 ,所以并集为5;共同都看过只有1部,交集为1,因此AB相似度为1/5。AC同理。 sim(A,B)=1/5 sim(A,C)=2/4 sim(A,B)<sim(A,C)

但jaccard算法不适合协同过滤,因为在协同过滤中,评分是一个很关键的参考因素,而jaccard算法忽略了其中的评分环节。

杰卡德相似度适合用于隐式反馈数据。例如,使用用户的收藏行为,计算用户之间的相似度,杰卡德相似度就适合来承担这个任务。

jaccard相似度算法相关推荐

  1. 文本相似度算法Jaccard相似度(杰卡德相似度)java实现

    文本相似度算法 杰卡德相似度,指的是文本A与文本B中交集的字数除以并集的字数,公式非常简单: java代码 import java.util.HashSet; import java.util.Sca ...

  2. 协同过滤算法之通过Jaccard相似度计算推荐结果原理及代码实现

    文章目录 Jaccard相似度介绍 Jaccard相似度计算推荐结果代码及实现 基本介绍 Jaccard相似度计算代码 协同过滤推荐代码实现 Jaccard相似度介绍 两个集合的交集元素个数在并集中所 ...

  3. jaccard相似度 java_jaccard相似度算法

    Jaccard index, 又称为Jaccard相似系数(Jaccard similarity coefficient)用于比较有限样本集之间的相似性与差异性.Jaccard系数值越大,样本相似度越 ...

  4. 相似度算法(http://blog.sina.com.cn/s/blog_62b83291010127bf.html)

    在数据分析和数据挖掘的过程中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别.最常见的是数据分析中的相关分析,数据挖掘中的分 类和聚类算法,如K最近邻(KNN)和K均值(K-Means) ...

  5. jaccard相似度_如何计算两个字符串之间的文本相似度?

    推荐阅读: 面试BAT 却被小小字符串秒杀?这13道题帮你一举击败字符串算法题 字节跳动秋招面经:后端开发工程师,已拿意向书 前言 平时的编码中,我们经常需要判断两个文本的相似性,不管是用来做文本纠错 ...

  6. jaccard相似度_推荐系统中常用计算相似度的方法和工具

    常用的相似度计算方法:(1)欧氏距离(2)余弦相似度 (3)皮尔逊相关系数 (4)修正余弦相似度(5)汉明距离 (6)曼哈顿距离 1.欧式距离:就是计算空间中两点的距离 def EuclideanDi ...

  7. 欧氏距离、余弦相似度、Jaccard相似度、皮尔逊的Python代码与实例

    首先是一段计算4个相似度的Python代码. 需要注意的是,进行归一化操作后,4个函数取值范围都是0-1,而且都是数值越大表示相似性越高,数值为1代表完全相似. import numpy as npd ...

  8. 相似度算法和距离算法

    常见的距离算法和相似度(相关系数)计算方法 查看原文 摘要: 1.常见的距离算法 1.1欧几里得距离(Euclidean Distance)以及欧式距离的标准化(Standardized Euclid ...

  9. 文本相似度算法的对比及python实现

    文本相似度算法的对比及python实现 前言 通常我们有这样的需求:对两篇文章或者产品内容进行重复率查询. 为了解决类似的问题,罗列了一些常见的相似度算法,用python代码实现. 五种常见的相似度算 ...

最新文章

  1. r语言如何写入一个excel_R语言如何进行聚类分析?
  2. 针对接口编程,不要针对实现编程
  3. 突破各个子系统,你就能对Linux了如指掌
  4. Python入门教程之Python保留字符大全
  5. Codeforces Global Round 12 C1 C2. Errich-Tac-Toe 思维构造 好题
  6. 引用和指针的区别都有什么_C++指针与引用的区别
  7. canva怎么拼接图片_小间距LED显示屏怎么拼接成2K,4K和8K显示屏_小间距显示屏厂家为您科普...
  8. CALayer的属性和使用
  9. shell自动交互之expect脚本_转
  10. 是谁断送了网络工程师的前途
  11. fastp manul page
  12. mac php71 php fpm,Mac PHP-fpm
  13. 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字
  14. javascript,H5,jQuery,css“实现音乐歌词解析,歌词同步滚动,进度条拖拽、进度条同步,音量控制,歌词同步高亮的功能齐全的简易音乐播放器
  15. rrpp协议如何修改_RRPP配置注意事项
  16. 财务数据中台架构及建设方案(ppt)
  17. [洛谷]P2298 Mzc和男家丁的游戏 题解
  18. 基于单片机交通灯控制的c语言程序设计,基于单片机控制的交通灯毕业设计
  19. FPGA基础知识----第三章 第2节 综合和仿真
  20. JAVA学习_week3

热门文章

  1. java设计扑克牌比大小_2019-08-09Day10 单例设计模式,扑克牌比大小游戏(Java)
  2. 惠普喷墨打印机Smart Tank 519打印错误的解决
  3. java调用ltp_LTP随笔——本地调用ltp之ltp4j
  4. Flink DataStream时间水印机制
  5. 如何修改MySQL实例的UUID#olivia丶长歌#
  6. JS添加iframe标签
  7. NPOI 读取空Excel 空单元格报错的问题
  8. QT打包软件在另一电脑运行后出现Cannot load library XXX.dll之解决方案-MSVC编译器
  9. Internal Error (Network has dynamic or shape inputs, but no optimization profile has been defined.)
  10. 深度神经网络概念整理,最简单的神经网络是什么样子?