Jaccard相似系数

定义

给定两个集合A,B,Jaccard 系数定义为A与B交集的大小与A与B并集的大小的比值,定义如下:

当集合A,B都为空时,J(A,B)定义为1。

与Jaccard 系数相关的指标叫做Jaccard 距离,用于描述集合之间的不相似度。Jaccard 距离越大,样本相似度越低。公式定义如下:

其中对参差(symmetric difference)

性质

实例

主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此无法衡量差异具体值的大小,只能获得“是否相同”这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。

1、如果比较X与Y的Jaccard相似系数,只比较xn和yn中相同的个数,公式如下:
如集合A={1,2,3,4};B={3,4,5,6};
那么他们的J(X,Y)=1{3,4}/1{1,2,3,4,5,6}=1/3;

2、样本A与样本B是两个n维向量,而且所有维度的取值都是0或1。例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。

概念浅析:假设A是坚果Pro2 , B是 苹果8x。 为了比较两个手机,给出了n个评价指标,即n维特征,也就是n维向量:1-是国产、2-有刘海、3-价格高于5000。那么对于A=(100),B=(011)。所以,n维向量指样本的N维特征,组成一个集合。而集合是由元素组成的,在对应的特征位置,如果样本有该特征,这个位置集合值取1,表示包含该元素;否则,取0,表示不包含该元素。可见,元素=特征。

P:样本A与B都是1的维度的个数

q:样本A是1,样本B是0的维度的个数

r:样本A是0,样本B是1的维度的个数

s:样本A与B都是0的维度的个数

那么样本A与B的杰卡德相似系数可以表示为:

这里p+q+r可理解为A与B的并集的元素个数,而p是A与B的交集的元素个数。

而样本A与B的杰卡德系数表示为:

代码

1、当两个集合元素个数相同,则直接调包

from numpy import *
import scipy.spatial.distance as dist  # 导入scipy距离公式
matV = mat([[1,1,0,1,0,1,0,0,1],[0,1,1,0,0,0,1,1,1]])
print ("dist.jaccard:", dist.pdist(matV,'jaccard'))

2、当集合元素个数不同

def correlation(set_a,set_b):unions = len(set_a.union(set_b))intersections = len(set_a.intersection(set_b))return 1. * intersections / unions

相似度计算之Jaccard系数相关推荐

  1. 分别用matlab和python计算物品相似度矩阵(Jaccard系数

    用户\物品 A B C D E 101 1 1 0 0 1 102 0 1 0 1 0 103 1 1 1 1 1 104 1 1 0 1 0 105 1 1 0 0 1 106 0 0 0 1 0 ...

  2. 【数据挖掘】聚类 Cluster 矩阵转换 数据矩阵 - 相似度矩阵 ( 二元变量简介 | 二元变量可能性表 | 对称二元变量 | 简单匹配系数 | 非对称二元变量 | Jaccard 系数 )

    文章目录 I . 二元变量 II . 二元变量 可能性表 III . 对称 二元变量 ( 恒定相似度 ) IV . 简单匹配系数 ( 恒定相似度计算 ) V . 不对称 二元变量 ( 非恒定相似度 ) ...

  3. 文本相似度计算基本方法小结

    在计算文本相似项发现方面,有以下一些可参考的方法.这些概念和方法会帮助我们开拓思路. 相似度计算方面 Jaccard相似度:集合之间的Jaccard相似度等于交集大小与并集大小的比例.适合的应用包括文 ...

  4. R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度、对字符串向量计算Jaccard相似度、将Jaccard相似度转化为Jaccard距离

    R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度.对字符串向量计算Jaccard相似度.将Jaccard相似度转化为Jaccard距离 目录 R ...

  5. 计算歌曲相似度:Jaccard系数

    什么是Jaccard系数 其公式如下: 可以看出,其含义是集合A.B中相同的个数,除以A与B交集个数.可以看出,Jaccard系统主要关注的是元素是的个体是否相同,而不能用数值具体表示其差异.从这个意 ...

  6. Jaccard文本相似度计算 Java程序

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. Jaccard相似系数 两个集合A和B交集元素的个数在A.B并集中所占的比例,称 ...

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

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

  8. 【机器学习基础】机器学习中“距离与相似度”计算汇总

    写在前面 涵盖了常用到的距离与相似度计算方式,其中包括欧几里得距离.标准化欧几里得距离.曼哈顿距离.汉明距离.切比雪夫距离.马氏距离.兰氏距离.闵科夫斯基距离.编辑距离.余弦相似度.杰卡德相似度.Di ...

  9. 【机器学习基础】机器学习距离与相似度计算

    写在前面 涵盖了常用到的距离与相似度计算方式,其中包括欧几里得距离.标准化欧几里得距离.曼哈顿距离.汉明距离.切比雪夫距离.马氏距离.兰氏距离.闵科夫斯基距离.编辑距离.余弦相似度.杰卡德相似度.Di ...

最新文章

  1. (节点分类)四大图数据集AIFB,MUTAG,BGS,AM数据集获取
  2. 谷歌chrome浏览器的源码分析(三)
  3. 抛开 Spring 去理解 IOC 思想:原来 IOC 容器这么简单
  4. 人工智能、机器学习、数据挖掘著名会议
  5. 产品经理学SQL(二)
  6. 华为云发布【云巢】智慧康养物联网加速器,加入立享多项扶持
  7. 02-05 从c到c++
  8. NSString的长度比较方法(一)
  9. 每个人都会有的第一次
  10. easyui Datagrid的deleteRow多行删除问题
  11. 如何在香港主机上尽可能多的建站
  12. 一定能用到的简单但实用的五种按钮样式(原生HTML+CSS步骤详解,含详细注释)
  13. 两连杆机器鱼的简单建模以及MATLAB仿真
  14. 一段真实在个人经历, 给那些迷失方向的朋友[转帖]
  15. 计算机常见故障及排除方法,科学网—计算机常见故障和解决办法 - 李卓哲的博文...
  16. ubuntu ssh Host key verification failed,Host 10.xxx.xxx.xxx not found in /home/user/.ssh/known_hosts
  17. SQLyog安装配置详细过程
  18. nuc977 led 新唐自带gpio linux驱动
  19. HPE牵手CSC,打造DXC延承HP百年家规
  20. 7-3 接话茬 (100分)(简洁易懂的代码含思路分析)

热门文章

  1. 用python让excel飞起来(第7章 图表操作)
  2. 华为数字化转型之道 实践篇 第十章 数字化办公:构建全方位的连接与协同
  3. 软件企业认定的标准要求
  4. 计算机软件添加信任,瑞星杀毒怎么添加信任软件 添加方法介绍
  5. PT_二维随机变量:正态分布的可加性/一维随机变量函数与正态分布
  6. 2023第十三届“中兴捧月”全球精英挑战赛今日正式启动
  7. WPF--控件(代码讲解)
  8. 用css编写一个简单的旋转魔方
  9. 解决Failed to load resource: net::ERR_CONNECTION_TIMED_OUT
  10. maven 解决Cannot access alimaven (httpmaven.aliyun.comnexuscontentrepositoriescentral)