杰卡德相似系数(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相似度即可。当然,用途还有很多,不过大多需要结合其他的技术。比如:

  1. 过滤相似度很高的新闻,或者网页去重

  2. 考试防作弊系统

  3. 论文查重系统

  4. 计算对象间距离,用于数据聚类等。

参考地址,感谢各位作者:

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)的更多相关文章

  1. 相似系数_杰卡德距离(Jaccard Distance)

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...

  2. Jaccard similarity(杰卡德相似度)和Abundance correlation(丰度相关性)

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

  3. 余弦距离、欧氏距离和杰卡德相似性度量的对比分析 by ChaoSimple

      1.余弦距离 余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量. 向量,是多维空间中有方向的线段,如果两个向量的方向一致,即夹角接近零,那么这两个向 ...

  4. 如何选择kmeans中的k值——肘部法则–Elbow Method和轮廓系数–Silhouette Coefficient

    肘部法则–Elbow Method 我们知道k-means是以最小化样本与质点平方误差作为目标函数,将每个簇的质点与簇内样本点的平方距离误差和称为畸变程度(distortions),那么,对于一个簇, ...

  5. 机器学习中应用到的各种距离介绍(附上Matlab代码)

    转载于博客:各种距离 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurement),这时通常采用的方法就是计算样本间的"距离"(Distance). ...

  6. 机器学习中的相似性度量(Similarity Measurement)

    机器学习中的相似性度量(Similarity Measurement) 在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间 ...

  7. ML 07、机器学习中的距离度量

    机器学习算法 原理.实现与实践 —— 距离的度量 声明:本篇文章内容大部分转载于July于CSDN的文章:从K近邻算法.距离度量谈到KD树.SIFT+BBF算法,对内容格式与公式进行了重新整理.同时, ...

  8. 相似性度量(Similarity Measurement)与“距离”(Distance)

    在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance).采用什么样的方法计算距离是很讲究,甚至关 ...

  9. KNN算法介绍

    KNN算法全名为k-Nearest Neighbor,就是K最近邻的意思. 算法描述 KNN是一种分类算法,其基本思想是采用测量不同特征值之间的距离方法进行分类. 算法过程如下: 1.准备样本数据集( ...

随机推荐

  1. Angularjs 数据双向绑定

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  2. CSS 实战1

    1.CSS 初始化 @charset "UTF-8"; /*css 初始化 */ html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3 ...

  3. HTML中id和class选择器

    <1>.id和class的区别? id相当于人的身份证不可以重复 class相当于人的名称可以重复 一个HTML标签只能绑定一个id名称 一个HTML标签可以绑定多个class名称 < ...

  4. Oracle 11g RAC小结

    1.查看数据库所有实例与状态 unixdev$[/home/grid]srvctl status database -d unixdev Instance unixdev11 is running o ...

  5. js/javascript计时器方法及使用场景

    开博以备忘 JavaScript实现计时事件很容易,两个关键方法 setTimeout(“JavaScript语句”,毫秒)   未来的某时执行代码 clearTimeout()  取消setTime ...

  6. Git基本使用及工具

    好久没用git管理代码了,最近忙着要实习,一直在看面试题,后天入职了,就提前再复习一下git吧. git比较方便的两个网站,如果你想逼格高就用GitHub(https://github.com/),如 ...

  7. java后台去除JSON数组的重复值

    假设原始Json数组是这样的 原始JSONArry:[{"Value":"15153129877","Key":"09770985 ...

  8. QQ群技术:0成本创建2000人QQ群技巧

    群人数,直接关系群权重;于排名,意义非凡;此法靠谱,笔者亲测. 就说这张图,这类关键词,要是没2000人群,不管你多流弊,你是做不上去滴. 于QQ群霸屏,笔者有太多的笔墨,各种排名技巧,阿力推推早前明 ...

  9. yii 自带RBAC

    common:中加 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'itemTable' => 'auth_item', ' ...

  10. python 迭代器 和生成器

    迭代器 # 双下方法 # print([1].__add__([2])) # print([1]+[2]) # 迭代器 # l = [1,2,3] # 索引 # 循环 for # for i in l ...