精华内容
下载资源
问答
  • 两个词作为一段来计算,末尾不够截掉 Jaccard相关系数大于0.5则认为两个新闻标题相似 利用并查集将相似的合并在一起 Code import pandas as pd import nltk import numpy as np class Jaccard: def __init__(self, ...
  • 余弦距离与jaccard距离以及python实现

    千次阅读 2020-10-07 15:39:10
    最近在看一些文章跟代码的时候碰到了余弦距离跟jaccrd距离的概念。刚开始有些混淆不清楚特,特别是再用scipy代码实现的过程中更是搞得一塌糊涂。现在自己整明白了就将自己的理解写下来。 余弦距离 简单讲余弦距离...

    前言

       最近在看一些文章跟代码的时候碰到了余弦距离跟jaccrd距离的概念。刚开始有些混淆不清楚特,特别是在用scipy代码实现的过程中更是搞得一塌糊涂。现在自己整明白了就将自己的理解写下来。主要的区别就是cos计算出来的是余弦相似度,只有1减去计算出来的余弦相似度才是余弦距离。

    1. 余弦距离
      简单讲余弦距离就是
      在这里插入图片描述

      也就是1减去在这里插入图片描述
      如果用scipy库中的包实现的话如下所示

    import numpy as np
    vec1 = [1,2,3,4]
    vec2 = [5,6,7,8]
     
    #法一:根据公式求解
    dist1 = np.dot(vec1,vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2))
    print("余弦距离为:\t"+str(1-dist1))
     
    #法二:根据scipy库求解
    from scipy.spatial.distance import pdist
    Vec = np.vstack([vec1,vec2])
    dist2 = pdist(Vec,'cosine')
    print("余弦距离为:\t"+str(dist2))
    

    上面这段代码是从另一个博主那里借鉴来的不过他写的有错(上面的代码是我改正过的),按照他的计算方式算的不是余弦距离而是余弦相似度。我之所以困惑也是看了他的代码才晕的(博主抱歉了)原博主的文章链接。进一步看一下scipy库pdist给出的说明文档也验证了我的想法
    在这里插入图片描述
    用函数包算出来的直接就是余弦距离。

    1. jaccard距离
      在这里插入图片描述
      以上内容来自百度百科说的而已经很详细了。
      代码实现如下:
    import numpy as np
    from scipy.spatial.distance import pdist
    x=np.random.random(10)>0.5
    y=np.random.random(10)>0.5
    
    x=np.asarray(x,np.int32)
    y=np.asarray(y,np.int32)
    
    #方法一:根据公式求解
    up=np.double(np.bitwise_and((x != y),np.bitwise_or(x != 0, y != 0)).sum())
    down=np.double(np.bitwise_or(x != 0, y != 0).sum())
    d1=(up/down)
               
    
    #方法二:根据scipy库求解
    X=np.vstack([x,y])
    d2=pdist(X,'jaccard')  # 算出来的就是jaccard距离,需要计算jaccard系数的话就需要1-d2
    

    参考文献

    [1]余弦距离与余弦相似度的区别以及应用

    展开全文
  • 一、余弦距离 形式化描述: 余弦夹角也可以叫余弦相似度。几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。 余弦取值范围为[-1,1]。求得两个向量的夹角,并得出...

    一、余弦距离

    形式化描述:

    余弦夹角也可以叫余弦相似度。几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。

    余弦取值范围为[-1,1]。求得两个向量的夹角,并得出夹角对应的余弦值,此余弦值就可以用来表征这两个向量的相似性。夹角越小,趋近于0度,余弦值越接近于1,它们的方向更加吻合,则越相似。当两个向量的方向完全相反时,夹角余弦取最小值-1。当余弦值为0时,两向量正交,夹角为90度。因此可以看出,余弦相似度与向量的幅值无关,只与向量的方向有关。

    公式描述:

                                                                                   

     

    在二维空间中向量与向量的夹角余弦公式为:

     

                                                                  

    Python实现:

    import numpy as np
    vec1 = [1,2,3,4]
    vec2 = [5,6,7,8]
    
    #法一:根据公式求解
    dist1 = np.dot(vec1,vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2))
    print("余弦距离为:\t"+str(dist1))
    
    #法二:根据scipy库求解
    from scipy.spatial.distance import pdist
    Vec = np.vstack([vec1,vec2])
    dist2 = 1 - pdist(Vec,'cosine')
    print("余弦距离为:\t"+str(dist2))
    余弦距离为:	0.9688639316269662
    余弦距离为:	[0.96886393]

    二、欧式距离

    形式化描述:

    在数学中,欧几里德距离或欧几里德度量是欧几里德空间中两点间“普通”(即直线)距离。使用这个距离。欧式空间成为度量空间。相关联的范数称为欧几里德范数。较早德文献称之为毕达哥拉斯度量。

    公式化描述:

    1)平面上两点

     

     

    三、曼哈顿距离

     

     

     

    四、明可夫斯基距离

     

     

     

    五、切比雪夫距离

     

     

     

    六、杰卡德距离

     

     

     

    七、汉明距离

     

     

     

    八、标准化欧式距离

     

     

     

    九、皮尔逊相关系数

     

     

     

    十、编辑距离

     

     

     

    来源:自然语言处理理论与实战

    展开全文
  • Python 计算各类距离

    千次阅读 2018-07-18 17:28:12
    原文:... Python Numpy计算各类距离 详细: 1.闵可夫斯基距离(Minkowski Distance) 2.欧氏距离(Euclidean Distance) 3.曼哈顿距离(Manhattan Distance) 4.切比雪夫距离(Chebyshev Dista...

    原文:https://blog.csdn.net/qq_19707521/article/details/78479532

    Python Numpy计算各类距离

    详细:

    1.闵可夫斯基距离(Minkowski Distance)

    2.欧氏距离(Euclidean Distance)

    3.曼哈顿距离(Manhattan Distance)

    4.切比雪夫距离(Chebyshev Distance)

    5.夹角余弦(Cosine)

    6.汉明距离(Hamming distance)

    7.杰卡德相似系数(Jaccard similarity coefficient)

    8.贝叶斯公式

     

    (1)闵氏距离的定义:

    两个n维变量A(x11,x12,…,x1n)与 B(x21,x22,…,x2n)间的闵可夫斯基距离定义为:

     

    其中p是一个变参数。

    当p=1时,就是曼哈顿距离

    当p=2时,就是欧氏距离

    当p→∞时,就是切比雪夫距离

    根据变参数的不同,闵氏距离可以表示一类的距离。

    展开全文
  • 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 ...

    利用python计算各类距离:https://www.jb51.net/article/164673.htm

    1.闵可夫斯基距离(Minkowski Distance)

    闵可夫斯基距离不是一个距离,而是一组距离的定义。其中 p 代表空间的维数,当 p=1 时,就是曼哈顿距离;当 p=2 时,就是欧氏距离;当 p→∞时,就是切比雪夫距离。

    2.欧氏距离(Euclidean Distance)

    3.曼哈顿距离(Manhattan Distance)

    曼哈顿距离在几何空间中用的比较多。以下图为例,绿色的直线代表两点之间的欧式距离,而红色和黄色的线为两点的曼哈顿距离。所以曼哈顿距离等于两个点在坐标系上绝对轴距总和。

    4.切比雪夫距离(Chebyshev Distance)

    5.夹角余弦(Cosine)

    余弦距离实际上计算的是两个向量的夹角,是在方向上计算两者之间的差异,对绝对数值不敏感。在兴趣相关性比较上,角度关系比距离的绝对值更重要,因此余弦距离可以用于衡量用户对内容兴趣的区分度。比如用搜索引擎搜索某个关键词,它还会推荐其他的相关搜索,这些推荐的关键词就是采用余弦距离计算得出的。

    6.汉明距离(Hamming distance)

    7.杰卡德相似系数(Jaccard similarity coefficient)

    8.贝叶斯公式

    相关性

    方法1:通过numpy的corrcoef

    x = [52,19,7,33,2]
    y = [162,61,22,100,6]
    num.corrcoef(x,y)

    方法2:通过pandas的corr

    data = pandas.DataFrame({'x':x, 'y':y})
    data.corr()

    Jaccard相似度

    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距离,清晰易懂,保证能够理解,后面还有python源码实现这个公式
  • Python Numpy计算各类距离

    万次阅读 多人点赞 2017-11-08 16:22:55
    详细: 1.闵可夫斯基距离(Minkowski Distance) 2.欧氏距离(Euclidean Distance) 3.曼哈顿距离(Manhattan Distance) 4.切比雪夫距离(Chebyshev Distance) 5.夹角余弦(Cosine) ...7.杰卡德相似系数(Jaccard sim
  • 详细:1.闵可夫斯基距离(Minkowski Distance)2.欧氏距离(Euclidean Distance)3.曼哈顿距离(Manhattan Distance)4.切比雪夫距离(Chebyshev Distance)5...杰卡德相似系数(Jaccard similarity coefficient)8.贝叶斯公式1...
  • Jaccard 相似系数又称为Jaccard相似性度量(Jaccard系数,Jaccard 指数,Jaccard index)。用于比较有限样本集之间的相似性与差异性。...与 Jaccard 相似系数相对的指标是Jaccard 距离Jaccard distance)...
  • 7.杰卡德相似系数(Jaccard similarity coefficient) 8.贝叶斯公式 1.闵氏距离的定义: 两个n维变量A(x11,x12,…,x1n)与 B(x21,x22,…,x2n)间的闵可夫斯基距离定义为: 其中p是一个变参数。 当p=1时,就是曼哈顿距
  • python计算数学中各种距离

    千次阅读 2018-10-29 14:54:25
    文章目录使用 python计算各种距离前言一、余弦距离二、欧式距离三、哈曼顿距离四、明可夫斯基距离五 切比雪夫距离六 杰卡德距离 使用 python计算各种距离 前言  &nbsp...
  • 得到Jaccard距离和Jaccard系数 D =  0.8000 coefficient =  0.2000   Python代码计算C、A的相似度:   matV = mat([[0,0,1,0,0,0,0],[1,0,1,1,1,0,1]]) print ("CA的jaccard系数:", 1-dist...
  • 以下内容来自《Python数据科学指南》欧式空间与非欧氏空间的区别:l 直观理解上:如果向量的元素是实数,那就是欧式空间;如果是整数,则不是欧式空间。其中文本挖掘时,词被当作轴,文档作为空间内的向量,两个...
  • 上一篇说了simhash,本质是降维...就是simhash和汉明距离配套一样,和minhash配套的是Jaccard距离。minhash是LSH(局部敏感哈希)的一种,快速检索大量数据。特征矩阵特征矩阵是推荐系统必须要做的事,不管是用户-用户...
  • 相似度计算Jaccard系数

    万次阅读 2018-11-13 10:23:22
    Jaccard相似系数 ...与Jaccard 系数相关的指标叫做Jaccard 距离,用于描述集合之间的不相似度。Jaccard 距离越大,样本相似度越低。公式定义如下: 其中对参差(symmetric difference) ...
  • python 字符串相似度计算距离算法

    千次阅读 2018-09-10 10:39:59
    字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换为另一个字符串,所需要的最少编辑次数,这种就是编辑距离(edit distance)度量方法,也称为Levenshtein距离。海明距离是编辑...
  • Python实现各类距离

    2019-09-02 13:20:50
    Python实现各类距离0.9332019.05.03 23:36:50字数419阅读668 闵可夫斯基距离(Minkowski Distance) 欧式距离(Euclidean Distance) 标准欧式距离(Standardized Euclidean Distance) 曼哈顿距离(Manhattan Distance) ...
  • pythonpython求各种距离公式

    千次阅读 2019-01-23 20:12:10
    在scipy.spatial中最重要的模块应该就是距离计算模块distance了。 from scipy import spatial 距离计算 矩阵距离计算函数 矩阵参数每行代表一个观测值,计算结果就是每行之间的metric距离。Distance matrix ...
  • 杰卡德距离Jaccard Distance)是用来衡量两个集合差异性的一种指标,它是杰卡德相似系数的补集,被定义为1减去Jaccard相似系数。而杰卡德相似系数(Jaccard similarity coefficient),也称杰卡德指数(Jaccard ...
  • Python求两点之间的直线距离(2种实现方法)方法一:#导入math包import math#定义点的函数class Point:def __init__(self,x=0,y=0):self.x=xself.y=ydef getx(self):return self.xdef gety(self):return self.y#定义...
  •   jaccard系数是在数据挖掘中常用的一个指标,但是对于向量的jaccard系数计算方法与基于集合的jaccard计算方法是不一样的。笔者也是在读一篇论文的代码时发现的这个差别,下面我将具体的探讨一下这两种计算方法的...
  • python求各种距离公式

    万次阅读 2016-09-19 17:01:29
    今天一个偶然的机会体会到了python数据运算的强大。求一个数组各样本之间的距离仅简单的几句代码就行。看来真的技术改变世界啊。...1.X = pdist(X, 'euclidean')计算数组X样本之间的欧式距离 返回值为
  • python实现各类距离

    千次阅读 2018-06-14 16:59:32
    目前,常见的距离如下:(1) Minkowski Distance(2) Euclidean Distance(3) ManHattan Distance(4) Chebyshev Distance(5) Cosine(6) HammingDistance(7) Jaccard Similarity Coefficient举实.....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,178
精华内容 471
关键字:

python计算jaccard距离

python 订阅