精华内容
下载资源
问答
  • data.csv中包含了一个新闻标题列表,试通过近似检测方法,通过Jaccard相似度,检测相似文章,将结果保存到csv文件中,不同文章间用空行隔开。 Work 思路: 两个词作为一段来计算,末尾不够截掉 Jaccard相关系数大于...
  • Jaccard相似度和广义Jaccard相似度

    千次阅读 2016-11-05 21:50:13
    1. 狭义Jaccard相似度,计算两个集合之间的相似程度,元素的“取值”为0或1 对集合A和B,Jaccard相似度计算如下: Jaccard(A, B)= |A intersect B| / |A union B| 相似度数值在[0, 1]之间,当A==B的...
    1. 狭义Jaccard相似度,计算两个集合之间的相似程度,元素的“取值”为0或1
    
     
    

    对集合A和B,Jaccard相似度计算如下:
    Jaccard(A, B)= |A intersect B| / |A union B|
    相似度数值在[0, 1]之间,当A==B的时候,为1. 优缺点,就是元素的取值只能是0或者1,无法利用更丰富的信息。

    由相似度,可以转换成Jaccard距离:
    Jaccard distance (A, B) = 1 - Jaccard(A, B)


    2. 广义Jaccard相似度,元素的取值可以是实数。又称为Tanimoto系数,用EJ来表示,计算方式如下:

    EJ(A,B)=(A*B)/(||A||^2+||B||^2-A*B)

    其中A、B分别表示为两个向量,集合中每个元素表示为向量中的一个维度,在每个维度上,取值通常是[0, 1]之间的值,A*B表示向量乘积,||A||^2表示向量的模,即 ||A||^2 = sqrt (a1^2 + a2^2 + a3^2 + ......)。
    广义Jaccard相似度计算公式中,如果把分母的A*B去掉,并将||A||^2+||B||^2替换为(||A||^2)*(||B||^2),就转成了余弦相似度(cosine similarity)。

    EJ中每个分量的取值可以是实数,通常在[0, 1]之间。对于两篇文档,分词之后,形成两个“词语--词频向量”,词语可以做为EJ的维度,如何将词频转换为实数值。借鉴tf/idf的思路。对于每个词语,有两个频度:1.在当前文档中的频度;2. 在所有文档中的频度。其中1相当于tf,与权重正相关;2相当于df,与权重反相关。
    对于2,计算权重为
    idf (w) = log (TotalWC/C(w))
    C(w)是词语w在所有文档中出现的次数,TotalWC是所有文档中所有词的总词频。
    对于1,权重就可以取词频本身 tf(w) = D(w),D(w)表示在当前文档中w出现的次数。

    具体计算的代码可以参考 “ http://www.cnblogs.com/TtTiCk/archive/2007/08/04/842819.html”的Documents.cs中的“SimilitudeValueToDocumentUsingGeneralizedJaccardCoefficient”函数。


    3. 其他扩展方法
    文章“ http://www.docin.com/p-461291267.html”给出了一种扩展方法,用最大最小值函数来代替乘积和模计算,如下:

    EJ(A,B) = sum ( min(a1, b1) + min (a2, b2)... ) / sum ( max(a1, b1) + max (a2, b2).. )

    即用向量中每个分量的的最小值和最大值来参与计算。

    个人理解,这个可以做如下解释。当集合A中的元素a1出现C(a1)次的时候,我们可以认为集合中的元素是允许重复存在的,即集合A中有C(a1)个元素;集合B也是这样,有C(b1)个相同的元素,则A和B在这个元素上的交集就是min(a1, b1) ,并集就是max(a1, b1) ,这样上述公式就是利用狭义Jaccard相似度计算的结果。

    文章来源:http://blog.csdn.net/july_2/article/details/18353741

    展开全文
  • 1. 狭义Jaccard相似度,计算两个集合之间的相似程度,元素的“取值”为0或1 对集合A和B,Jaccard相似度计算如下: Jaccard(A, B)= |A intersect B| / |A union B| 相似度数值在[0, 1]之间,当A==B的时候,...
    1. 狭义Jaccard相似度,计算两个集合之间的相似程度,元素的“取值”为0或1

    对集合A和B,Jaccard相似度计算如下:
    Jaccard(A, B)= |A intersect B| / |A union B|
    相似度数值在[0, 1]之间,当A==B的时候,为1. 优缺点,就是元素的取值只能是0或者1,无法利用更丰富的信息。

    由相似度,可以转换成Jaccard距离:
    Jaccard distance (A, B) = 1 - Jaccard(A, B)


    2. 广义Jaccard相似度,元素的取值可以是实数。又称为Tanimoto系数,用EJ来表示,计算方式如下:

    EJ(A,B)=(A*B)/(||A||^2+||B||^2-A*B)

    其中A、B分别表示为两个向量,集合中每个元素表示为向量中的一个维度,在每个维度上,取值通常是[0, 1]之间的值,A*B表示向量乘积,||A||^2表示向量的模,即 ||A||^2 = sqrt (a1^2 + a2^2 + a3^2 + ......)。
    广义Jaccard相似度计算公式中,如果把分母的A*B去掉,并将||A||^2+||B||^2替换为(||A||^2)*(||B||^2),就转成了余弦相似度(cosine similarity)。

    EJ中每个分量的取值可以是实数,通常在[0, 1]之间。对于两篇文档,分词之后,形成两个“词语--词频向量”,词语可以做为EJ的维度,如何将词频转换为实数值。借鉴tf/idf的思路。对于每个词语,有两个频度:1.在当前文档中的频度;2. 在所有文档中的频度。其中1相当于tf,与权重正相关;2相当于df,与权重反相关。
    对于2,计算权重为
    idf (w) = log (TotalWC/C(w))
    C(w)是词语w在所有文档中出现的次数,TotalWC是所有文档中所有词的总词频。
    对于1,权重就可以取词频本身 tf(w) = D(w),D(w)表示在当前文档中w出现的次数。

    具体计算的代码可以参考 “ http://www.cnblogs.com/TtTiCk/archive/2007/08/04/842819.html”的Documents.cs中的“SimilitudeValueToDocumentUsingGeneralizedJaccardCoefficient”函数。


    3. 其他扩展方法
    文章“ http://www.docin.com/p-461291267.html”给出了一种扩展方法,用最大最小值函数来代替乘积和模计算,如下:

    EJ(A,B) = sum ( min(a1, b1) + min (a2, b2)... ) / sum ( max(a1, b1) + max (a2, b2).. )

    即用向量中每个分量的的最小值和最大值来参与计算。
    个人理解,这个可以做如下解释。当集合A中的元素a1出现C(a1)次的时候,我们可以认为集合中的元素是允许重复存在的,即集合A中有C(a1)个元素;集合B也是这样,有C(b1)个相同的元素,则A和B在这个元素上的交集就是min(a1, b1) ,并集就是max(a1, b1) ,这样上述公式就是利用狭义Jaccard相似度计算的结果。


    参考文献:
    wiki:http://en.wikipedia.org/wiki/Jaccard_similarity

    展开全文
  • 相关性从网站对象来分,可以针对商品、用户、旺铺、资讯、类目等等,从计算方式看可以分为文本相关性计算和行为相关性计算,具体的实现方法有很多种,最常用的方法有余弦夹角(Cosine)方法、杰卡德(Jaccard)方法...

    0-- 前言:

    对于个性化推荐来说,最核心、重要的算法是相关性度量算法。相关性从网站对象来分,可以针对商品、用户、旺铺、资讯、类目等等,从计算方式看可以分为文本相关性计算和行为相关性计算,具体的实现方法有很多种,最常用的方法有余弦夹角(Cosine)方法、杰卡德(Jaccard)方法等。Google对新闻的相似性计算采用的是余弦夹角,CBU的个性化推荐以往也主要采用此方法。从9月份开始,CBU个性化推荐团队实现了杰卡德计算方法计算文本相关性和行为相关性,并且分别在线上做了算法效果测试。本文基于测试结果,进行了对比及一些分析比较。

    1、行为相关性的度量比较

    通过前段时间在CBU1688.COM网站上的多个场景的线上测试,我们发现:CTR指标上,针对行为相关性计算的Jaccard的推荐精准度比Cosine方法要高的多

    将两种方法的算法结果,直接放到线上应用的三个应用场景,通过跟踪不同算法结果的实际的CTR(曝光点击率),详细数据如下:

    场景

    推荐策略

    CTRJaccard VS Cosine

    收藏offer成功后的提示页面

    相关商品的推荐普通商品

    提升21%

    进货单页面的相关商品推荐

    相关商品推荐普通商品

    提升9%

    阿里巴巴每日焦点-热卖tab

    猜你喜欢推荐P4P商品

    提升12%

    简要分析:

    1    如果是完全以相关性推荐为主题的页面,比如“收藏offer成功后的提示页面”,Jaccard方法对应的CTR提升最大;

    2     提升达到9%的进货单页面,该页面的核心价值是促进加入进货单的商品进入交易付款环节,并不是推荐,因此在推荐场景布置上有很大局限;

    3     提升达到12%的阿里巴巴每日焦点-热卖,虽然整个页面的主题就是推荐,但是毕竟推荐的是P4P商品,因为P4P商品覆盖率不是很高,行为相关性粘稠度肯定不如普通商品,所以覆盖率也没有达到20%

    2、文本相关性的度量比较cosine好一点点,但是Jaccard利于map/red计算)

        同样,在文本相关性计算中,分别使用CosineJaccard,再将算法结果在线上做测试。线上场景是1688的资讯画报推荐。数据显示,两者的CTR基本一致。

         不过, Jaccard 方法在 hadoop 上的分布式计算,其计算效率上比 Cosine 有一定的优势。

    3, 文本相似度的那些算法(转载)

    子序列与子字符串

    这个系列问题包含这么几种:最大子序列、最长递增子序列、最长公共子串、最长公共子序列。 
    几个子问题都可以用动态规划的思路来求解。对于长度为i、j的两个字符串 ,使用m[i][j]矩阵来存放中间结果。

    更详细的算法可以看这篇文档: 
    http://www.cnblogs.com/zhangchaoyang/articles/2012070.html

    字符串编辑距离

    精确计算两个字符串的编辑距离,可以使用经典的动态规划思路。

    这里来看下如何判断字符串A与B的编辑是否>N?这样我们就可以比较两个字符串的相似度了。 
    可以构建一个编辑距离自动机(超酷算法:Levenshtein自动机),把测试字符集合输入自动机进行判断。

    可用于拼写检查,模糊匹配等场景。

    向量相似度

    使用TF-IDF计算出文本中词的词频集合,把该集合作一个向量,比较不同集合向量在线性空间中的相似度。如:余弦距离、欧氏距离、概率分布距离(K-L距离)等。

    更详细的介绍看这篇文档: 
    http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html

    SimHash

    simhash算法的主要思想是降维,将高维的特征向量映射成一个f-bit的指纹(fingerprint),通过比较两篇文章的f-bit指纹的Hamming Distance来确定文章是否重复或者高度近似。

    主要分以下几步: 
    1、抽取文本中的关键词及其权重。 
    2、对关键词取传统hash,并与权重叠加,算出文本的fingerprint值。 
    3、计算出两个文本之间fingerprint值的海明距离。

    更详细的介绍可以看这篇文档: 
    http://blog.csdn.net/heiyeshuwu/article/details/44117473


    总之,对于行为相关性的度量,Jaccard一般效果更好;而对于文本相关性的度量,Cosine效果略好于Jaccard;但是,但是Jaccard利于map/red计算


    补充:Jaccard相似度和广义Jaccard相似度

    1. 狭义Jaccard相似度,计算两个集合之间的相似程度,元素的取值01

    对集合ABJaccard相似度计算如下:

    JaccardA, B= |A intersectB| / |A union B|

    相似度数值在[0, 1]之间,当A==B的时候,为1. 优缺点,就是元素的取值只能是0或者1,无法利用更丰富的信息

    由相似度,可以转换成Jaccard距离:

    Jaccard distance A, B = 1- JaccardA, B


    2. 广义Jaccard相似度,元素的取值可以是实数。又称为Tanimoto系数,用EJ来表示,计算方式如下:

    EJ(A,B)=(A*B)/(||A||^2+||B||^2-A*B)

    其中AB分别表示为两个向量,集合中每个元素表示为向量中的一个维度,在每个维度上,取值通常是[0, 1]之间的值,A*B表示向量乘积,||A||^2表示向量的模,即 ||A||^2 = sqrt (a1^2 + a2^2 + a3^2 +......)

    广义Jaccard相似度计算公式中,如果把分母的A*B去掉,并将||A||^2+||B||^2替换为(||A||^2*||B||^2),就转成了余弦相似度(cosine similarity)。

    EJ中每个分量的取值可以是实数,通常在[0, 1]之间。对于两篇文档,分词之后,形成两个词语--词频向量,词语可以做为EJ的维度,如何将词频转换为实数值。借鉴tf/idf的思路。对于每个词语,有两个频度:1.在当前文档中的频度;2. 在所有文档中的频度。其中1相当于tf,与权重正相关;2相当于df,与权重反相关。

    对于2,计算权重为

    idf (w) = log (TotalWC/C(w))

    C(w)是词语w在所有文档中出现的次数,TotalWC是所有文档中所有词的总词频。

    对于1,权重就可以取词频本身 tf(w) = D(w)D(w)表示在当前文档中w出现的次数

    具体计算的代码可以参考http://www.cnblogs.com/TtTiCk/archive/2007/08/04/842819.htmlDocuments.cs中的“SimilitudeValueToDocumentUsingGeneralizedJaccardCoefficient”函数。


    3. 其他扩展方法

    文章http://www.docin.com/p-461291267.html给出了一种扩展方法,用最大最小值函数来代替乘积和模计算,如下:

    EJ(A,B) = sum ( min(a1, b1) + min (a2, b2)... ) / sum ( max(a1, b1) +max (a2, b2).. )

    即用向量中每个分量的的最小值和最大值来参与计算。

    个人理解,这个可以做如下解释。当集合A中的元素a1出现C(a1)次的时候,我们可以认为集合中的元素是允许重复存在的,即集合A中有C(a1)个元素;集合B也是这样,有C(b1)个相同的元素,则AB在这个元素上的交集就是min(a1, b1) ,并集就是max(a1,b1) ,这样上述公式就是利用狭义Jaccard相似度计算的结果。


    展开全文
  • jaccard相似度

    万次阅读 2018-01-19 11:18:36
    1、jaccard index又称为jaccard similarity coefficient用于比较有限样本集之间的相似性和差异性定义:给定两个集合A,B jaccard 系数...与jaccard 系数相关的指标是jaccard距离用于描述不相似度,公式为jaccard相似度

    1、jaccard index又称为jaccard similarity coefficient用于比较有限样本集之间的相似性和差异性

    定义:

    给定两个集合A,B jaccard 系数定义为A与B交集的大小与并集大小的比值,jaccard值越大说明相似度越高

    当A和B都为空时,jaccard(A,B)=1;

    与jaccard 系数相关的指标是jaccard距离用于描述不相似度,公式为

    jaccard相似度的缺点是值适用于二元数据的集合。


    举一个非对称(注意这里强调非对称)二元属性的相似度

    已知有序集合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

    知乎上几种相似度的比较


    2、广义jaccard系数,

    x=(x1,x2,...,xn) y=(y1,y2,...,yn)是两个向量,xi,yi>0的实值,x,y的相似性系数定义为,距离定义为


    更一般的情况,f和是X上关于u的两个非负的测量函数,则

    上面是广义jaccard 相似性的一种定义,另一种是Tanimoto 相似性和距离,这种相似性是两个bitmap相同位和所有位的比值, {\displaystyle \land ,\lor }\land , \lor 是与,或操作,


    wiki上说If each sample is modelled instead as a set of attributes, this value is equal to the Jaccard coefficient of the two sets

    这句话的意思是jaccard是以属性集合的方式定义的,而Tanimoto是以位图的方式定义的

    对于这句话难以理解

    Tanimoto相似性的其他定义

    如果用位向量(0,1向量)来表示Tanimoto 可以定义为,,其中


    有时候二元变量有相同的权重,如“男”“女”,但有时候二元变量优先权不同,或者说权重不同,通常将重要的变量编码为1,,两个不对称的变量,如果编码值都为1更有意义,基于这样的相似度成为非对称相似度。这种相似度的评价最著名的就是jaccard系数。

    ------------------------------------------------------------------------

    其他概念

    1、对等差分(symetric difference)

    对等差分就是给定两个集合A,B,要么在A集合中,要么在集合B中,但是不在两个集合的交集中的元素组成的集合,用符号表示为

    或者

    2、余弦相似度

    对于两个向量a,b,向量可以是多维,余弦相似度定义为,注意a,b可以是多维向量

    3、其余的还有欧氏距离,马氏距离,闵可夫斯基距离,汉明距离,等等,这里不介绍,需要的时候再查找相关资料


    展开全文
  • 下面是利用余弦定理和广义Jaccard系数来计算文本相似度。 <br />简单介绍一下Jaccard系数:广义Jaccard系数可以用于文档数据,并在二元属性情况下归约为Jaccard系数。广义Jaccard系数又称Tanimoto系数。(有另一...
  • 下面是利用余弦定理和广义Jaccard系数来计算文本相似度。简单介绍一下Jaccard系数:广义Jaccard系数可以用于文档数据,并在二元属性情况下归约为Jaccard系数。广义Jaccard系数又称Tanimoto系数。(有另一种系数也称为...
  • jaccard相似度计算公式

    千次阅读 2011-04-12 22:04:00
    简单介绍一下Jaccard系数:广义Jaccard系数可以用于文档数据,并在二元属性情况下归约为Jaccard系数。广义Jaccard系数又称Tanimoto系数。(有另一种系数也称为Tanimoto系数)。该系数用EJ表示,由下式定义:...
  • jaccard相似性度量

    千次阅读 2018-09-24 13:43:33
    Jaccard /IOU Jaccard index 定义:度量两个集合之间相似性,index值越大则两个集合越相似,或者说两个集合重叠区域越多; 公式: Jaccard distance 公式:两个集合之间相似性度量;... 广义Jaccard distance ...
  • Jaccard相似系数和皮尔逊相关系数

    千次阅读 2016-05-29 16:57:28
    主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此无法衡量差异具体值的大小,只能获得“是否相同”这个结果,所以Jaccard系数只关心个体间共同具有的特征...
  • [机器学习篇]机器学习知识总结篇

    万次阅读 热门讨论 2017-03-08 22:36:48
    Jaccard相似度和准确率、召回率 Pearson相关系数与余弦相似度 K-means与K-Medoids及变种 AP算法(Sci07)/LPA算法及其应用 密度聚类DBSCAN/DensityPeak(Sci14) 谱聚类SC 聚类评价和结果指标 #16、聚类实践 ...
  • 常见的距离算法和相似度(相关系数)计算方法

    万次阅读 多人点赞 2018-08-14 15:00:50
     定义:广义Jaccard相似度,元素的取值可以是实数。又叫作谷本系数  关系:如果我们的x,y都是二值向量,那么Tanimoto系数就等同Jaccard距离。    2.5对数似然相似率  对于事件A和事件B,我们考虑两...
  • 求解相似度的常见算法

    千次阅读 2020-07-19 22:13:32
    (参考自余弦距离、欧氏距离和杰卡德相似性度量的对比分析) 2.4Tanimoto系数(广义Jaccard相似系数) 公式: 定义:广义Jaccard相似度,元素的取值可以是实数。又叫作谷本系数 关系:如果我们的x,y都是二值向量,那么...
  • 各种距离和相似度名词详解

    千次阅读 2018-10-02 16:14:08
    谷本系数即广义Jaccard相似度 ,可以辨别两个取值为实数的向量的中,重叠内容的程度。   3.2 相关扩展 1、信息商: (1)作用:信息熵是衡量分布的混乱程度或分散程度的一种度量。分布越分散(或者说分布...
  • 相似度与距离算法种类总结

    千次阅读 2018-08-24 13:07:43
    评价个体的相似性和类别时,衡量个体差异的方法主要有【距离】和【相似度】两种: 假设我们要比较X个体和Y个体间的差异,它们都包含了N个维的特征, X=(x1, x2, x3, … xn) Y=(y1, y2, y3, … yn) 下面...
  • 常见的距离算法和相似度(相关系数)计算方法 查看原文 摘要: 1.常见的距离算法  1.1欧几里得距离(Euclidean Distance)以及欧式距离的标准化(Standardized Euclidean distance)  1.2马哈拉诺比斯距离...
  • 【机器学习】几种相似度算法分析

    万次阅读 多人点赞 2018-06-19 12:54:57
    最近开始研究推荐系统,其中常见的相似度算法有以下几种:1. 欧几里得距离欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即...
  • (参考自余弦距离、欧氏距离和杰卡德相似性度量的对比分析) 2.4Tanimoto系数(广义Jaccard相似系数) 公式: 定义:广义Jaccard相似度,元素的取值可以是实数。又叫作谷本系数 关系:如果我们的x,y都是二值向量,那么...
  • 在计算机人工智能领域,距离(distance)、相似度(similarity)是经常出现的基本概念,它们在自然语言处理、计算机视觉等子领域有重要的应用,而这些概念又大多源于数学领域的度量(metric)、测度(measure)等概念。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 401
精华内容 160
关键字:

广义jaccard相似度