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

jaccard值越大说明相似度越高。
(2)杰卡德距离
与杰卡德相似系数相反的概念是杰卡德距离(Jaccard Distance),可以用如下公式来表示:

杰卡德距离用两个两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。
jaccard相似度的缺点是值适用于二元数据的集合。
(3)杰卡德相似系数的应用
假设样本A和样本B是两个n维向量,而且所有维度的取值都是0或1。例如,A(0,1,1,0)和B(1,0,1,1)。我们将样本看成一个集合,1表示集合包含该元素,0表示集合不包含该元素。
p:样本A与B都是1的维度的个数
q:样本A是1而B是0的维度的个数
r:样本A是0而B是1的维度的个数
s:样本A与B都是0的维度的个数
那么样本A与B的杰卡德相似系数可以表示为:

此处分母之所以不加s的原因在于:
对于杰卡德相似系数或杰卡德距离来说,它处理的都是非对称二元变量。非对称的意思是指状态的两个输出不是同等重要的,例如,疾病检查的阳性和阴性结果。
按照惯例,我们将比较重要的输出结果,通常也是出现几率较小的结果编码为1(例如HIV阳性),而将另一种结果编码为0(例如HIV阴性)。给定两个非对称二元变量,两个都取1的情况(正匹配)认为比两个都取0的情况(负匹配)更有意义。负匹配的数量s认为是不重要的,因此在计算时忽略。
再举一例:
举一个非对称(注意这里强调非对称)二元属性的相似度
已知有序集合A,B,每个集合都含有n个二元的属性,即每个属性都是0或1,
M11表示A和B对应位都是1的属性的数量
M10表示A中为1,B中对应位为0的总数量
M01表示A中为0,B中对应位为1的总数量
M00表示对应位都为0的总数量
M11+M10+M01+M00=n
Jaccard 相似度:
jaccard距离:
这里有人会有疑问,jaccard相似度是指交集和并集的比值,这里J的分子为什么只有M11没有M00,这是因为我们求的是非对称二元属性的相似度,这里只有非0值才受关注,比如考虑普通人的健康状况,属性集合(糖尿病,心脏病,精神病,。。。),糖尿病指标0表示没有糖尿病,1表示糖尿病,心脏病指标0表示没有心脏病,1表示心脏病,比较两个人的患病情况,我们只关注有病的情况。所以分子和分母中没有M00
(4)杰卡德相似度算法分析
杰卡德相似度算法没有考虑向量中潜在数值的大小,而是简单的处理为0和1,不过,做了这样的处理之后,杰卡德方法的计算效率肯定是比较高的,毕竟只需要做集合操作。
Jaccard系数主要用于计算符号度量或布尔值度量的个体间的相似度,无法衡量差异具体值的大小,只能获得“是否相同”这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。
推荐算法之Jaccard相似度与Consine相似度
对于个性化推荐来说,最核心、重要的算法是相关性度量算法。相关性从网站对象来分,可以针对商品、用户、旺铺、资讯、类目等等,从计算方式看可以分为文本相关性计算和行为相关性计算,具体的实现方法有很多种,最常用的方法有余弦夹角(Cosine)方法、杰卡德(Jaccard)方法等。Google对新闻的相似性计算采用的是余弦夹角,CBU的个性化推荐以往也主要采用此方法。从9月份开始,CBU个性化推荐团队实现了杰卡德计算方法计算文本相关性和行为相关性,并且分别在线上做了算法效果测试。本文基于测试结果,进行了对比及一些分析比较。
行为相关性的度量比较:在CTR(曝光点击率)指标上,针对行为相关性计算的Jaccard的推荐精准度比Cosine方法要高的多。
文本相关性的度量比较:cosine好一点点,但是Jaccard利于map/red计算
Jaccard系数主要的应用的场景
Jaccard的应用很广,最常见的应用就是求两个文档的文本相似度,通过一定的办法(比如shinging)对文档进行分词,构成词语的集合,再计算Jaccard相似度即可。当然,用途还有很多,不过大多需要结合其他的技术。比如:
过滤相似度很高的新闻,或者网页去重
考试防作弊系统
论文查重系统
- 计算对象间距离,用于数据聚类等。
参考地址,感谢各位作者:
https://www.cnblogs.com/chaosimple/p/3160839.html
https://www.cnblogs.com/arachis/p/Similarity.html
https://blog.csdn.net/u010700335/article/details/72626997?locationNum=3&fps=1
https://blog.csdn.net/u012836354/article/details/79103099
https://blog.csdn.net/bananaml/article/details/52894295
https://blog.mythsman.com/2016/09/16/1/
http://blog.sina.com.cn/s/blog_4b59de07010166z9.html
https://baike.baidu.com/item/Jaccard%E7%B3%BB%E6%95%B0/6784913?fr=aladdin
相关系数之杰卡德相似系数(Jaccardsimilarity coefficient)的更多相关文章
- 相似系数_杰卡德距离(Jaccard Distance)
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...
- Jaccard similarity(杰卡德相似度)和Abundance correlation(丰度相关性)
杰卡德距离(Jaccard Distance) 是用来衡量两个集合差异性的一种指标,它是杰卡德相似系数的补集,被定义为1减去Jaccard相似系数.而杰卡德相似系数(Jaccard similarit ...
- 余弦距离、欧氏距离和杰卡德相似性度量的对比分析 by ChaoSimple
1.余弦距离 余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量. 向量,是多维空间中有方向的线段,如果两个向量的方向一致,即夹角接近零,那么这两个向 ...
- 如何选择kmeans中的k值——肘部法则–Elbow Method和轮廓系数–Silhouette Coefficient
肘部法则–Elbow Method 我们知道k-means是以最小化样本与质点平方误差作为目标函数,将每个簇的质点与簇内样本点的平方距离误差和称为畸变程度(distortions),那么,对于一个簇, ...
- 机器学习中应用到的各种距离介绍(附上Matlab代码)
转载于博客:各种距离 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurement),这时通常采用的方法就是计算样本间的"距离"(Distance). ...
- 机器学习中的相似性度量(Similarity Measurement)
机器学习中的相似性度量(Similarity Measurement) 在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间 ...
- ML 07、机器学习中的距离度量
机器学习算法 原理.实现与实践 —— 距离的度量 声明:本篇文章内容大部分转载于July于CSDN的文章:从K近邻算法.距离度量谈到KD树.SIFT+BBF算法,对内容格式与公式进行了重新整理.同时, ...
- 相似性度量(Similarity Measurement)与“距离”(Distance)
在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance).采用什么样的方法计算距离是很讲究,甚至关 ...
- KNN算法介绍
KNN算法全名为k-Nearest Neighbor,就是K最近邻的意思. 算法描述 KNN是一种分类算法,其基本思想是采用测量不同特征值之间的距离方法进行分类. 算法过程如下: 1.准备样本数据集( ...
随机推荐
- django-orm简记
首先orm是什么? orm-------->对象关系映射 专业性解释网上一大推,随便搜搜就能了解大概.在我理解(通俗):一个类 ----- 数据库中一张表 类属性 ----- 数据表中的字段名 ...
- Layui上传文件以及数据表格
layui对于一些前端小白来说,例如我,真的非常的好用,不用去花很多很多的心思在前端美化中,并且提高了很大的工作效率.所以建议一些觉得自己前端技术不是很强,但是想让前端美化一点的可以使用layui. ...
- 树莓派官方推荐的VNC Viewer配置详解Raspberry Pi3 B+
1GB内存,16GB硬盘容量.这是我目前使用的Pi3树莓派. SVN Viewer远程连接,台式机192.168.1.102连接局域网192.168.1.110上的树莓派.使用的软件是: https: ...
- let's encrypt部署免费泛域名证书
环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...
- python中的"is"与"=="比较
在 Python 中会用到对象之间比较,可以用 ==,也可以用 is .但是它们的区别是什么呢? is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同.莱布尼茨说过: ...
- 如何本地搭建centos7虚拟主机?
1 前期准备: 下载虚拟机和CentOS安装源 VMware-workstation-full-10.0.3-1895310 CentOS-7.0-1406-x86_64-DVD.iso 以下是过 ...
- php PHPEXcel导出
1获取数据,2组装数据,3生成文件. 注意:无法使用ajax生成导出. $settlement = \Yii::$app->request->get('settlement'); $sav ...
- WordPress4.9 最新版本网站安全漏洞详情与修复
wordpress 目前互联网的市场占有率较高,许多站长以及建站公司都在使用这套开源的博客建站系统来设计网站,wordpress的优化以及html静态化,深受google以及搜索引擎的喜欢,全世界大约 ...
- urllib.request.urlretrieve()
urllib模块提供的urlretrieve()函数.urlretrieve()方法直接将远程数据下载到本地. urlretrieve(url, filename=None, reporthook=N ...
- Git的升级版本
关于升级版本,例如我们要升级service版本,我们可以这样子操作 1.在master里面pull完了之后,到自己的分支,然后merge master里面的代码,然后把pom文件 里面的版本升一级,然 ...