精华内容
下载资源
问答
  • 距离度量
    千次阅读
    2018-05-22 00:58:47

    特征空间中两个实例点的距离是两个实例点相似程度的反映。


    欧式空间下的距离度量

    假设特征空间X是n维实数向量空间R^n, x_i, x_j ∈ X,

    这里写图片描述
    最常用的距离度量方法时“闵科夫斯基距离”(Minkowski distance),即为x_i - x_j的Lp范数 ||x_i - x_j||p 。x_i, x_j 的 闵科夫斯基距离定义:

    这里写图片描述,这里 p >= 1.

    当p=2时,称为欧式距离(Euclidean distance):

    这里写图片描述

    def distance(p0, p1):
        # Computes euclidean distance
        return np.sqrt(np.sum((p0-p1)**2))

    当p=1时,称为曼哈顿距离(Manhattan distance):

    这里写图片描述

    def distance(p0, p1):
        # Computes manhattan distance
        return np.sum(np.abs(p0-p1))

    p→∞时,就是切比雪夫距离(Chebyshev distance),距离为所有维度上差值的最大值:

    这里写图片描述

    非欧式空间下的距离度量

    Jaccard距离

    通过计算交集的相对大小来获得集合之间的相似度,这种相似度称为Jaccard相似度。

    集合S和T的Jaccard相似度SIM(S,T):

    这里写图片描述

    例:集合S和T的交集有3个元素,并集中有8个元素

    SIM(S,T)=3/8. S I M ( S , T ) = 3 / 8.

    与Jaccard相似度相反,集合的Jaccard距离用集合中不同元素占所有元素的比例来衡量,可以定义为

    d(x,y)=1SIM(x,y) d ( x , y ) = 1 − S I M ( x , y )

    余弦距离(cosine distance)

    在有维度的空间下余弦距离才有意义,空间中的点可以代表方向。

    夹角余弦等于它们的内积x·y除以两个向量的L2范式乘积。
    这里写图片描述

    夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。

    海明距离(Hamming distance)

    给定一个向量空间,海明距离定义为两个向量中不同分量的个数。海明距离往往应用于布尔向量。

    例:10101和11110的海明距离为3。第2、4、5位元素不同。

    编辑距离

    编辑距离只适用于字符串比较。两个字符串x=x1x2···xny=y1y2···ym的编辑距离等于将x转换为y所需要的单字符插入及删除操作的最小数目。

    或者,另一种定义和计算编辑d(x,y)的方法基于x和y的最长公共子序列(longest common subsequence, LCS)的计算。通过在x和y的某些位置上进行删除操作能够得到某个字符串,基于上述方法构造出x和y的最长公共字符串就是x和y的LCS。编辑距离等于x与y的长度之和减去它们呢的LCS的长度的两倍。

    d(x,y)=len(x)+len(y)2len(LCS(x,y)) d ( x , y ) = l e n ( x ) + l e n ( y ) − 2 ∗ l e n ( L C S ( x , y ) )

    周志华 《机器学习》 9.3 P199

    《统计学习方法》 3.2.2 P38

    《Mining of Massive Datasets》 3.5 P59

    https://en.wikipedia.org/wiki/Norm_%28mathematics%29#Euclidean_norm

    https://en.wikipedia.org/wiki/Cosine_similarity

    https://en.wikipedia.org/wiki/Kullback–Leibler_divergence#Symmetrised_divergence

    https://my.oschina.net/hunglish/blog/787596

    更多相关内容
  • Python 中的距离度量学习 算法 这个python模块实现了两种距离度量学习算法,用于从成对相似性约束中学习度量: 成对约束分量分析 (PCCA) [ ] 跨模态度量学习 (CMML) [ ] 免责声明 此代码已从头开始重新编写,主要...
  • 距离度量是许多机器学习算法中的关键问题。 本文考虑了必须以链接和不能链接的形式从成对约束中学习的一般问题。 作为一种辅助信息,必须链接表示两个数据点对必须在同一类中,而不能链接表示两个数据点必须在两个...
  • 模糊软集的相似度量和距离度量
  • 自适应距离度量的基于逻辑对称性的K均值算法
  • 一种改进的距离度量的聚类算法.pdf
  • 基于特征矩阵的多元时间序列最小距离度量方法
  • 流形正则化转移距离度量学习
  • 全局性和局部性纳入距离度量学习中
  • 基于距离度量学习的半监督多视角谱聚类算法.pdf
  • 将多种类型的特征与距离度量学习融合以用于社会图像应用
  • DunDi:使用距离度量学习提高神经网络的鲁棒性
  • 改进的基于距离度量的无迭代K-means聚类算法
  • 然后, 针对这3 种距离度量分别设计出相应的离群点检测算法, 用于从包含离散型属性的数据集中 检测离群点; 最后, 通过在2 个包含离散型属性的UCI 数据集上的实验, 验证了这些算法的可行性和有效性.</body>&...
  • 在这项研究中,我们探索使用距离度量学习来自动确定欧氏距离度量的广义形式,即所谓的马哈拉诺比斯距离度量。 在单细胞标签可用的情况下,可以使用这种方法。 我们以各种方式评估学习距离度量的潜力。 首先,我们...
  • 传统的K-Modes聚类算法采用简单的0-1匹配差异方法来计算同一分类属性下两个属性值之间的距离,没有充分考虑其相似性....通过与基于其他距离度量的K-Modes聚类算法进行实验比较,结果表明新的距离度量是更加有效的.
  • 一种改进的距离度量,用于使用克里金法插值基于链接的交通数据:大型城市道路网的案例研究
  • LMDML包含使用随机梯度下降的大距离距离度量学习的实现。 如有任何疑问,请联系Bac Nguyen()。 如何学习距离度量? LMDML背后的直觉的插图。 属于同一类别的示例以相同的颜色和样式表示。 (左)具有较小边距的...
  • 距离度量与相似度度量

    千次阅读 2022-03-24 10:11:22
    一些常见的距离度量方法。

    概述

          在分类和聚类任务中,需要用到距离度量评估样本之间的相似度。

          距离度量方法需要满足:1)样本到自身的距离为0;2)距离满足非负性;3)对称性,即A到B的距离与B到A的距离相同;4)三角形法则,即两边和大于第三边。

          距离度量的选择会影响到分类或聚类算法的效果,这里总结一些常见的距离度量方法。


     

    一、L_{p}距离 

          L_{p}距离是在论文中最常出现的距离度量方式之一,距离越大相似度越小。直白地说,L_{p}距离就是对两个样本在每个维度上的差距取p次方后求和并开p次方根(p≥1)。 

          L_{p}距离越大,相似度越小。 

          在特征空间X中取两个n维实数向量x_{i}x_{j}x_{i}=\left \{ x_{i}^{1}, x_{i}^{2},..., x_{i}^{n} \right \},x_{j}=\left \{ x_{j}^{1},x_{j}^{2},...,x_{j}^{n} \right \}L_{p}距离的公式化表示如下:

    L_{p}\left ( x_{i},x_{j} \right )=\left ( \sum_{m=1}^{n} \left | x_{i}^{m}-x_{j}^{m} \right |^{p}\right )^{\frac{1}{p}}

    •  当p=1时,称为曼哈顿距离:

     L_{1}\left ( x_{i},x_{j} \right )=\sum_{m=1}^{n}\left | x_{i}^{m}-x_{j}^{m} \right |

    •  当p=2时,称为欧式距离:

    L_{2}\left ( x_{i},x_{j} \right )=\left ( \sum_{m=1}^{n} \left | x_{i}^{m}-x_{j}^{m} \right |^{2}\right )^{\frac{1}{2}}

    •  当 p=∞时,称为切比雪夫距离:

    L_{\propto }\left ( x_{i},x_{j} \right )=max\left | x_{i}^{m}-x_{j}^{m} \right | , m\in \left \{ 1,2,...,n \right \}

              (切比雪夫距离等于两个样本在所有维度上差距最大的值。)

    • 在《统计学习方法》中,给出了不同 L_{p}距离之间的关系:

    二、马氏距离

          马哈拉诺比斯距离,计算的是数据的协方差距离。其优势在于:1)考虑了各种特征之间的联系,排除特征相关性的干扰,因此适用于维度之间相关的情况(例如,身高特征和体重特征之间是有关联的);2)独立于测量尺度,也即,与原始数据的测量单位是无关的。

          设多变量x=\left ( x_{1}, x_{2},...,x_{p} \right )^{T}的均值为\mu =\left ( \mu _{1}, \mu _{2},..., \mu _{p} \right )^{T},协方差矩阵为S,其马氏距离表示为:

    D_{M}\left ( x \right )=\sqrt{\left ( x-\mu \right )^{T}S^{-1}\left ( x-\mu \right )}

          当S=I时,马氏距离成为欧氏距离。

          马氏距离越大相似度越小。

    三、余弦相似度

          两个向量xy的余弦相似度表示为:

    cos\left ( x,y \right )=\frac{x\cdot y}{\left | x \right |\left | y \right |}

          夹角余弦值越接近1越相似,越接近0越不相似。

    四、相关系数

          两个随机变量xy的皮尔逊相关系数等于协方差矩阵除以标准差之积,公式表示为:

    \rho _{x,y}=\frac{Cov\left ( x,y \right )}{\sigma x\sigma y}

          相关系数取值在[-1,1],绝对值越大,正/负相似度越大。

    五、KL散度

          相对熵,衡量两个概率分布之间的距离。KL散度越小,相似度越高。

          设在离散随机变量X上有两个概率分布P(x),Q(x)(一般情况下P表示数据的真实分布,Q表示模型分布或P的近似分布)。KL散度用一个交叉熵减去一个信息熵,能够衡量用概率分布Q(x)去拟合P(x)的信息损耗,公式表示为:

    D_{KL}(P||Q)=\sum_{x\in X}P(x)log\frac{P(x)}{Q(x)}

          KL散度的性质:

    • 非对称性。虽然属于度量函数,但KL散度不是真正的距离,因为它不具有对称性,也即D(P||Q)\neq D(Q||P)
    • 非负性。即D(P||Q)\geqslant 0

          KL散度的缺陷:

    • 非对称性。
    • 当两个分布P和Q没有重叠时,KL散度的值为∞,没有意义。

    六、JS距离

          JS距离是KL散度的变体,也用来衡量两个概率分布的相似度。JS散度的提出解决了KL散度的非对称问题,表示为:

    JS(P||Q)=\frac{1}{2}KL(P(x)||\frac{P(x)+Q(x)}{2})+\frac{1}{2}KL(Q(x)||\frac{P(x)+Q(x)}{2})

          JS散度的性质:

    • 对称性。即JS(P||Q)=JS(Q||P)
    • 取值[0,1]。两个分布相同时,取值0;分布距离越大,值越接近1。

          JS散度的缺陷:

    • 当两个分布P和Q完全不重叠时,不管两个分布的中心距离有多近,JS散度都是一个常数,这会导致梯度为0,无法更新。

    七、MMD距离

          最大均值差异,一种核学习方法。

          衡量两个分布的相似程度,MMD距离值越小,两个分布越接近。

          MMD距离计算的是两堆数据在高维空间上的均值距离,对分别来自两个分布的随机变量X和Y,MMD距离表示为:

    MMD(X,Y)=\left \| \sum_{i=1}^{n_{1}} \phi (x_{i})-\sum_{j=1}^{n_{2}} \phi (y_{i})\right \|_{H}^{2}

    其中\phi (\cdot )表示括号内变量到高维空间的映射。

          MMD距离在迁移学习中得到很好的应用,迁移学习的训练集和测试集分别取自分布P和Q,这两个数据集不同但相关。使用神经网络进行特征空间变换,直到变换前后的特征分布相匹配,从而source domain最后与target domain相匹配。MMD距离在该过程中被当做匹配的度量方式。

    展开全文
  • pyDML Python的距离度量学习算法什么是远程度量学习? 许多机器学习算法需要相似性度量来执行其任务。 通常,使用标准距离(如欧氏距离)来衡量这种相似性。 距离度量学习算法尝试从数据中学习最佳距离。如何学习...
  • 在本文中,数据科学家 Maarten Grootendorst 向我们介绍了 9 种距离度量方法,其中包括欧氏距离、余弦相似度等。 许多算法,无论是监督学习还是无监督学习,都会使用距离度量。这些度量,如欧几里得距离或者...

    目录

    1 欧氏距离(Euclidean Distance)

    2 余弦相似度(Cosine Similarity)

    2.1 欧氏距离与余弦距离的关系

    3 汉明距离(Hamming Distance)

    4 曼哈顿距离(Manhattan Distance)

    5 切比雪夫距离(Chebyshev Distance)

    5.1 曼哈顿距离和切比雪夫距离之间的关系

    6 闵氏距离(Minkowski)(闵可夫斯基距离)

    7 雅卡尔指数(Jaccard Index)

    8 半正矢距离(Haversine)

    9 Sørensen-Dice 系数

    10 马氏距离

    11 相关系数

    12 夹角余弦


      在数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离。在本文中,数据科学家 Maarten Grootendorst 向我们介绍了 9 种距离度量方法,其中包括欧氏距离、余弦相似度等。

            

            许多算法,无论是监督学习还是无监督学习,都会使用距离度量。这些度量,如欧几里得距离或者余弦相似性,经常在 k-NN、 UMAP、HDBSCAN 等算法中使用。了解距离度量这个领域可能比你想的更重要,以 k-NN 为例,它常被用于监督学习中。

            但是,如果你的数据是高维的,欧几里德距离还能用吗?又或者如果你的数据是由地理空间信息组成的,也许半正矢距离是很好的选择。

            我们究竟如何选择最适合的距离度量?数据科学家 Maarten Grootendorst 向读者介绍了 9 种距离度量方法,并探讨如何以及何时以最佳的方式使用它们。此外 Maarten Grootendorst 还对它们的缺点进行了介绍,以及如何规避不足。

    欧氏距离(Euclidean Distance)

            

            我们从最常见的欧式距离开始,欧式距离可解释为连接两个点的线段的长度。欧式距离公式非常简单,使用勾股定理从这些点的笛卡尔坐标计算距离。

             

            缺点:尽管这是一种常用的距离度量,但欧式距离并不是尺度不变的,这意味着所计算的距离可能会根据特征的单位发生倾斜。通常,在使用欧式距离度量之前,需要对数据进行归一化处理

            此外,随着数据维数的增加,欧氏距离的作用也就越小。这与维数灾难(curse of dimensionality)有关。

            用例:当你拥有低维数据向量的大小非常重要时,欧式距离的效果非常好。如果在低维数据上使用欧式距离,则如 k-NN 和 HDBSCAN 之类的方法可达到开箱即用的效果。

    余弦相似度(Cosine Similarity)

            

            余弦相似度经常被用作抵消高维欧式距离问题。余弦相似度是指两个向量夹角的余弦。如果将向量归一化为长度均为 1 的向量,则向量的点积也相同。     

            余弦相似度 (Cosine Similarity) 通过计算两个向量的夹角余弦值来评估他们的相似度。将向量根据坐标值,绘制到向量空间中,求得他们的夹角,并得出夹角对应的余弦值,此余弦值就可以用来表征这两个向量的相似性。夹角越小,余弦值越接近于1,它们的方向越吻合,则越相似。

            两个方向完全相同的向量的余弦相似度为 1而两个彼此相对的向量的余弦相似度为 - 1。注意,它们的大小并不重要,因为这是在方向上的度量。

             

            余弦相似度的取值范围是[−1,1], 相同的两个向量之间的相似度为1。如果希望得到类似于距离的表示,将1减去余弦相似度即为余弦距离。因此,余弦距离的取值范围为[0,2],相同的两个向量余弦距离为0。

            缺点:余弦相似度的一个主要缺点是没有考虑向量的大小,而只考虑它们的方向。以推荐系统为例,余弦相似度就没有考虑到不同用户之间评分尺度的差异。

            用例:当我们对高维数据向量的大小不关注时,可以使用余弦相似度。对于文本分析,当数据以单词计数表示时,经常使用此度量。例如,当一个单词在一个文档中比另一个单词更频繁出现时,这并不一定意味着文档与该单词更相关。可能是文件长度不均匀或者计数的重要性不太重要。我们最好使用忽略幅度的余弦相似度。

    2.1 欧氏距离与余弦距离的关系

    归一化后的向量的余弦距离和欧氏距离是等价的。

             我们将cos(A,B)称为余弦相似度,1-cos(A,B)称为余弦距离,可以看到余弦距离和cos距离是等价的。推广到高纬空间可以得到一样的结论。如果选择距离最小(相似度最大)的近邻,那么使用余弦相似度和欧氏距离的结果是相同的。
            现在的人脸识别方法中,会对特征做归一化,归一化后特征的余弦距离和cos距离是等价的,所以使用哪个距离都是OK的。 

            总体来说,欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。例如,统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);此时二者的余弦距离很大,而欧氏距离很小;我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当使用余弦距离。而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单位:分钟)作为特征时,余弦距离会认为(1,10)、(10,100)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。

    汉明距离(Hamming Distance)

            

            汉明距离是两个向量之间不同值的个数。它通常用于比较两个相同长度的二进制字符串。它还可以用于字符串,通过计算不同字符的数量来比较它们之间的相似程度

            缺点:当两个向量长度不相等时,汉明距离使用起来很麻烦。当幅度是重要指标时,建议不要使用此距离指标

            用例:典型的用例包括数据通过计算机网络传输时的错误纠正 / 检测。它可以用来确定二进制字中失真的数目,作为估计误差的一种方法。此外,你还可以使用汉明距离来度量分类变量之间的距离。

    曼哈顿距离(Manhattan Distance)

            

            曼哈顿距离通常称为出租车距离城市街区距离,用来计算实值向量之间的距离。想象一下均匀网格棋盘上的物体,如果它们只能移动直角,曼哈顿距离是指两个向量之间的距离,在计算距离时不涉及对角线移动。

              

            从公式定义上看,曼哈顿距离一定是一个非负数距离最小的情况就是两个点重合,距离为 0,这一点和欧氏距离一样。曼哈顿距离和欧氏距离的意义相近,也是为了描述两个点之间的距离,不同的是曼哈顿距离只需要做加减法,这使得计算机在大量的计算过程中代价更低,而且会消除在开平方过程中取近似值而带来的误差。不仅如此,曼哈顿距离在人脱离计算机做计算的时候也会很方便。 

            之所以曼哈顿距离又被称为出租车距离是因为在像纽约曼哈顿区这样的地区有很多由横平竖直的街道所切成的街区(Block),出租车司机计算从一个位置到另一个位置的距离,通常直接用街区的两个坐标分别相减,再相加,这个结果就是他即将开车通过的街区数量,而完全没有必要用欧氏距离来求解——算起来超级麻烦还没有意义,毕竟谁也没办法从欧氏距离的直线上飞过去。如图 3 所示,假设一辆出租车要从上面的圆圈位置走到下面的圆圈位置,无论是左边的线路,还是右边的线路,都要经过 11 个街区,而这个 11 就是曼哈顿距离。

            

            缺点:尽管曼哈顿距离在高维数据中似乎可以工作,但它比欧式距离直观性差,尤其是在高维数据中使用时。此外,由于它可能不是最短路径,有可能比欧氏距离给出一个更高的距离值。

            用例:当数据集具有离散或二进制属性时,曼哈顿距离似乎工作得很好,因为它考虑了在这些属性的值中实际可以采用的路径。以欧式距离为例,它会在两个向量之间形成一条直线,但实际上这是不可能的。

    切比雪夫距离(Chebyshev Distance)

            

             切比雪夫距离定义为两个向量在任意坐标维度上的最大差值。换句话说,它就是沿着一个轴的最大距离。切比雪夫距离通常被称为棋盘距离,因为国际象棋的国王从一个方格到另一个方格的最小步数等于切比雪夫距离。

            

            缺点:切比雪夫距离通常用于特定的用例,这使得它很难像欧氏距离或余弦相似度那样作为通用的距离度量。因此,在确定适合用例时才使用它。

            用例:切比雪夫距离用于提取从一个方块移动到另一个方块所需的最小移动次数。此外,在允许无限制八向移动的游戏中,这可能是有用的方法。在实践中,切比雪夫距离经常用于仓库物流,因为它非常类似于起重机移动一个物体的时间。

    5.1 曼哈顿距离和切比雪夫距离之间的关系

            这两种距离可以相互转化!我们考虑最简单的情况,在一个二维坐标系中,设原点为(0,0)。如果用曼哈顿距离表示,则与原点距离为11的点会构成一个边长为√2的正方形。

            

            如果用切比雪夫距离表示,则与原点距离为1的点会构成一个边长为2的正方形。

            

            仔细对比这两个图形,我们会发现这两个图形长得差不多,他们应该可以通过某种变换互相转化。事实上,

    • 将一个点(x,y)的坐标变为(x+y,x−y)后,原坐标系中的曼哈顿距离 = 新坐标系中的切比雪夫距离
    • 将一个点(x,y)的坐标变为(x+y2,x−y2)后,原坐标系中的切比雪夫距离 = 新坐标系中的曼哈顿距离

    闵氏距离(Minkowski)(闵可夫斯基距离)

            

            闵氏距离比大多数距离度量更复杂。它是在范数向量空间(n 维实数空间)中使用的度量,这意味着它可以在一个空间中使用,在这个空间中,距离可以用一个有长度的向量来表示。

            闵氏距离公式如下:

            

     

            最有趣的一点是,我们可以使用参数 p 来操纵距离度量,使其与其他度量非常相似。常见的 p 值有:

    • p=1:曼哈顿距离

    • p=2:欧氏距离

    • p=∞:切比雪夫距离

            我们知道平面上到原点欧几里得距离(p = 2)为 1 的点所组成的形状是一个圆,当 p 取其他数值的时候呢?

            注意,当 p < 1 时,闵可夫斯基距离不再符合三角形法则,举个例子:当 p < 1, (0,0) 到 (1,1) 的距离等于 (1+1)^{1/p} > 2, 而 (0,1) 到这两个点的距离都是 1。

            缺点:闵氏距离与它们所代表的距离度量有相同的缺点,因此,对曼哈顿距离、欧几里得距离和切比雪夫距离等度量标准有个好的理解非常重要。此外,参数 p 的使用可能很麻烦,因为根据用例,查找正确的 p 值在计算上效率低。

            

    • :该维度上的均值
    •  : 该维度上的标准差  

            闵可夫斯基距离比较直观,但是它与数据的分布无关,具有一定的局限性,如果 x 方向的幅值远远大于 y 方向的值,这个距离公式就会过度放大 x 维度的作用。所以,在计算距离之前,我们可能还需要对数据进行 z-transform 处理,即减去均值,除以标准差:

            用例:p 的积极一面是可迭代,并找到最适合用例的距离度量。它允许在距离度量上有很大的灵活性,如果你非常熟悉 p 和许多距离度量,将会获益多多。

            可以看到,上述处理开始体现数据的统计特性了。这种方法在假设数据各个维度不相关的情况下利用数据分布的特性计算出不同的距离。如果维度相互之间数据相关(例如:身高较高的信息很有可能会带来体重较重的信息,因为两者是有关联的),这时候就要用到马氏距离(Mahalanobis distance)了

    雅卡尔指数(Jaccard Index)

            

            雅卡尔指数(交并比)是用于比较样本集相似性与多样性的统计量。雅卡尔系数能够量度有限样本集合的相似度,其定义为两个集合交集大小与并集大小之间的比例。

            例如,如果两个集合有 1 个共同的实体,而有 5 个不同的实体,那么雅卡尔指数为 1/5 = 0.2。要计算雅卡尔距离,我们只需从 1 中减去雅卡尔指数:

            

            缺点:雅卡尔指数的一个主要缺点是它受数据大小的影响很大。大数据集对指数有很大影响,因为它可以显著增加并集,同时保持交集相似。

            用例:雅卡尔指数通常用于使用二进制二进制数据的应用程序中。当你有一个深度学习模型来预测图像分割时,比如一辆汽车,雅卡尔指数可以用来计算给定真实标签的预测分割的准确度。

            类似地,它可以用于文本相似性分析,以测量文档之间有多少词语重叠。因此,它可以用来比较模式集合

    半正矢距离(Haversine)

            

            半正矢距离是指球面上的两点在给定经纬度条件下的距离。它与欧几里得距离非常相似,因为它可以计算两点之间的最短连线。主要区别在于半正矢距离不可能有直线,因为这里的假设是两个点都在一个球面上

            å¨è¿éæå¥å¾çæè¿°

            缺点:这种距离测量的一个缺点是,假定这些点位于一个球体上。实际上,这种情况很少出现,例如,地球不是完美的圆形,在某些情况下可能使计算变得困难。相反,如果假定是椭球,使用 Vincenty 距离比较好。

            用例:半正矢距离通常用于导航。例如,你可以使用它来计算两个国家之间的飞行距离。请注意,如果距离本身不那么大,则不太适合。

    Sørensen-Dice 系数

            

            Sørensen-Dice 系数雅卡尔指数非常相似,都是度量样本集的相似性和多样性。尽管它们的计算方法相似,但是 Sørensen-Dice 系数更直观一些,因为它可以被视为两个集合之间重叠的百分比,这个值在 0 到 1 之间:

            

            缺点:正如雅卡尔指数,Sørensen-Dice 系数也夸大了很少或没有真值的集合的重要性,因此,它可以控制多集合的平均得分,还可以控制多组平均得分并按相关集合的大小成反比地加权每个项目,而不是平等对待它们。

            用例:用例与雅卡尔指数相似,它通常用于图像分割任务或文本相似性分析。

    10 马氏距离

    马氏距离(Mahalanobis Distance)_意念回复的博客-CSDN博客_马氏距离

    11 相关系数

     12 夹角余弦

    展开全文
  • 提出了一种基于距离度量学习的煤岩识别方法。该方法首先从煤岩图像训练集中提取煤岩图像特征;然后学习到特定的距离度量,使得煤样本特征间、岩石样本特征间距离变小,煤样本特征与岩石样本特征间距离变大,以提高分类...
  • 典型相关分析(canonical correlation analysis,CCA)是寻找同一对象两组变量间线性相关性的一种常用的多元统计分析方法,其采用的欧氏距离度量方式导致了算法的非鲁棒性。核诱导的距离度量不仅在理论上被证明是鲁棒的,...
  • 相似性度量(或距离度量)方法在多元统计中的聚类分析、判别分析中的距离判别法、泛函分析、机器学习等方面都有应用。所以对于数据分析、机器学习等方面,掌握相似性的不同度量方法是十分重要且必要的。 相似性度量...

    相似性度量(或距离度量)方法在多元统计中的聚类分析、判别分析中的距离判别法、泛函分析、机器学习等方面都有应用。所以对于数据分析、机器学习等方面,掌握相似性的不同度量方法是十分重要且必要的。

    相似性度量与距离度量本质上是同一件事情。如果两组数据之间的距离越大,那么相似性越小;反正,如果相似性越大,那么距离越小,这是可以直观理解的。

    但是距离度量与相似度量还是有一点点区别的。距离度量,一般情况下距离是大于0的数;而相似性相异性通常数值介于[0,1]之间。相似性与相异性统称为邻近度

    对于相似性的度量,首先我们需要了解我们需要度量的对象,即样本中的数据。对于数据我们可以用样本数据矩阵观测值矩阵)来表示,即:

    X=\begin{pmatrix}X_{11}&X_{12}&...&X_{1p}\\X_{21}&X_{22}&...&X_{2p} \\...\\X_{n1}&X_{n2}&...&X_{np}\end{}_{n \times p}

    这里p表示数据维数(变量个数),即变量的个数p;n是数据的个数,其中

    X_{(i)}=\begin{pmatrix}X_{i1}&X_{i2}&...&X_{ip}\end{}^{T}

    表示第i组数据(在多元统计中,各个量通常用列向量表示,数据也是如此)。而对于距离(相似性)度量,研究的就是两组数据之间的距离。

    除了研究样本中两个数据之间距离,还有集合之间距离、概率分布之间距离、变量之间距离、序列之间的距离等。

    兔兔在下面将介绍一些距离度量方法。

    (1)欧式距离。

    欧式距离也是最常用的距离度量方法,从直观上理解就是两点间的直线距离。

    d(X_{(i)},X_{(j)})=\sqrt{(X_{i1}-X_{j1})^{2}+(X_{i2}-X_{j2})^{2}+...+(X_{ip}-X_{jp})^{2}}

    上式表示的就是数据X_{(i)}X_{(j)}之间的欧式距离。当p=1时,就是数轴上两个点的距离(即绝对值);当p=2时,就是平面两点间直线距离;p=3时,即空间两点之间的直线距离。p>3,就是p维空间的两点距离,所以欧式距离具有很好的直观性,便于理解。

    import numpy as np
    X1=[10,12,3] #第一组数据
    X2=[10,2,4] #第二组数据
    def Euclidean_distance(X1,X2):
        '''计算欧式距离'''
        p=len(X1) #数据的维数
        s=0
        for i in range(p):
            s+=(X1-X2)**2
        return np.sqrt(s)
    distance=Euclidean_distance(X1,X2)
    print(distance)

    以上是计算欧式距离的函数与实例代码。

    (2)平方欧式距离。

    平方欧式距离,顾名思义就是把欧式距离的结果平方,得到的就是平方欧式距离。即:

    d(X_{(i)},X_{(j)})=(X_{i1}-X_{j1})^{2}+...+(X_{ip}-X_{jp})^{2}=(X_{i}-X_{j})(X_{i}-X_{j})^{T}

    其结果也可以用向量乘积表示。对于算法实现,只要把上一个的开平方去掉即可,也可以用numpy中向量乘积的方法。

    (3)标准化后的欧式距离。

    对于前面讲到的欧式距离,也是有局限性的。比如,如果向量中各个单位不全相同,则欧式距离一般情况下就没有意义,即使单位全相同,但如果各个分量变异性相差很大,则变异性很大的的分量在欧式距离中起决定性作用,而变异性小的几乎不起作用。所以可以先对数据标准化,再计算欧式距离。

    X_{ij}^{*}=\frac{X_{ij}-\mu_{j}}{\sqrt{\sigma _{jj}}}\\X^{*}_{i}=\begin{pmatrix}\frac{X_{i1}-\mu_{1}}{\sqrt{\sigma _{11}}} &\frac{X_{i2}-\mu_{2}}{\sqrt{\sigma _{22}}}&...&\frac{X_{ip}-\mu_{p}}{\sqrt{\sigma _{pp}}}\end{}^{T}

    d(X_{(i)}^{*},X_{(j)}^{*})=\sqrt{(X^{*}_{i1}-X_{j1}^{*})^{2}+...+(X_{ip}^{*}-X_{jp}^{*})^{2}}

    其中标准化是指一组数据减去样本总体的均值,再除以对应变量的方差的开平方(即除以标准差)。第一个式子是第i组数据第j个指标的标准化,即用Xij减去第j个变量的均值\mu_{j},再除以第j个变量的标准差,第二个是标准化后第i组数据。之后就可以根据标准化后的数据X_{(i)}^{*},X_{(j)}^{*}来计算距离了。

    (4)马氏距离(广义欧式距离)。

    标准化后计算欧式距离,虽然消除了各个变量(或指标)的单位或方差的影响,但是无法消除变量之间的相关性的影响。所以我们就引入了马式距离来消除这种相关性的影响。马式距离也是多元统计分析中比较常用的距离度量方法。

    d(X_{(i)},X_{(j)})=\sqrt{(X_{(i)}-X_{(j)})^{T}\sum ^{-1}(X_{(i)}-X_{(j)})}

    其中\sum^{-1}表示样本X的协差阵的逆矩阵,\sum表示样本协差阵。

    (5)平方马式距离。

    平方马式距离即把马式距离进行平方。式子就是上面的等式右边,把根号去掉。

    注:关于马式距离的一些性质

    (1)若

    \sum=diag(\sigma_{11},\sigma_{22},...,\sigma_{pp})=\begin{pmatrix}\sigma_{11}&0&0&...&0\\0&\sigma_{22}&0&...&0\\0&0&\sigma_{33}&...&0\\...\\0&0&0&...&\sigma_{pp} \end{}_{p\times p}

    即样本各个分量不相关,此时的马式距离就是各个分量经标准化后的欧式距离;平方马式距离就是标准化后的平方欧式距离(即马式距离退化成加权欧式距离,对应(3))。

    (2)X_{(i)},X_{(j)}经单位变换后为Y_{(i)},Y_{(j)}Y=CX+\mathbf{b},C为常矩阵,b为常向量)。马氏距离保持不变。

    (3)马氏距离不受变量单位的影响,是一个无单位的数值。

    (6)绝对距离(曼哈顿距离)。

    d(X_{(i)},X_{(j)})=(|X_{i1}-X_{j1}|+...+|X_{ip}-X_{jp}|)=\sum_{k=1}^{p}|X_{ik}-X_{jk}|

    从直观上来看就是两组数据对应变量之差的绝对值,之后再求和。它的实际意义相当于从一个十字路口到另一个十字路口的距离。

    (7)切比雪夫距离。

    d(X_{(i)},X_{(j)})=max|X_{ik}-X_{jk}| (1\leq k\leq p)

    即两组数据对应的变量之差的绝对值最大的那个数。

    (8)明考夫斯基距离(明氏距离、闵氏距离、闵可夫斯基距离)。

    明氏距离实际上是欧式距离、绝对距离、切比雪夫距离的一般形式。

    d(X_{(i)},X_{(j)})=(\sum_{k=1}^{p}|X_{ik}-X_{jk}|^{q})^{\frac{1}{q}}

    我们发现,当q=1时,就是绝对距离;q=2时,就是欧式距离;q=\infty时,就是切比雪夫距离。

    (9)兰氏距离。

    d(X_{(i)},X_{(j)})=\frac{1}{p}\sum_{k=1}^{p}\frac{|X_{ik}-X_{jk}|}{X_{ik}+X_{jk}}

    兰氏距离适用于一切X_{ij}>0的情况,可以克服各指标之间量纲的影响;对大的奇异值不敏感,特别适合高度偏倚的数据;但是它没有考虑指标之间的相关性。

    (10)海明(汉明)距离。

    海明距离主要用于信息编码中距离的度量,例如在免疫算法中就会用到这个距离。海明距离就是两个等长字符串对应位置不同字符的个数。

    d(X_{(i)},X_{(j)})=\sum_{k=1}^{p}x_{k}\\x_{k}=\begin{Bmatrix} 0 &if &X_{ik}=X_{jk}\\1&if&X_{ik}\neq X_{jk}\end{}

    例如对应两个数组[1,1,0,0,0]和[0,1,0,1,0],它们对应位置元素不同的位置是1、2、4,所以海明距离就是3。

    汉明距离缺点是,当两个向量长度不等时,就很难使用了。

    (11)余弦相似度。

    余弦相似度经常用于解决高维欧几里得距离问题。其数值介于[-1,1]之间,也就是余弦函数的值域。

    d(X_{(i)},X_{(j)})=cos(\theta)=\frac{X_{(i)}^{T}X_{(j)}}{||X_{(i)}||.||X_{(j)}||}=\frac{\sum_{k=1}^{p}X_{ik}X_{jk}}{\sqrt{(\sum_{k=1}^{p}X_{ik}^{2})(\sum_{k=1}^{p}X_{jk}^{2})}}

    式子表示的就是两组数据(两个向量)之间的夹角余弦。所以它的缺点就是不考虑向量的大小,只考虑方向,在实践中,这意味着没有完全考虑值的差异所以容易出现问题。余弦相似度通常在高维数据并且向量大小不重要时使用,而且对于文本分析问题,当数据由字数表示时,该方法就非常常用。

    (12)杰卡德指数(Jaccard Index)。

    Jaccard指数用于计算样本集的相似性和多样性度量。而计算杰卡德距离,只需要用1减去杰卡德指数即可。

    d(X_{(i)},X_{(j)})=1-\frac{X_{(i)}\cap X_{(j)}}{X_{(i)}\cup X_{(j)}}

    杰卡德距离主要缺点是受数据大小的影响很大,大型数据对索引会产生很大影响,因为它可以显著增加并集,同时保存交集相似。而且杰卡德距离主要用于集合之间的距离度量。例如集合A={1,2,3,4,5},集合B={6,1,2,3},那么两个集合的交集有3个元素,并集有6个,那么杰卡德指数就是3/6=0.5,杰卡德距离就是1-0.5=0.5.

    (13)相关系数。

    利用两个样本的相关系数也可以用作距离度量的方法。两组数据的相关系数可以由样本的相关阵来确定,也可以由下面式子计算:

    r(X_{(i)},X_{(j)})=\frac{\sum_{k=1}^{p}(X_{ik}-\overline{X}_{i})(X_{jk}-\overline{X}_{j})}{\sqrt{\sum_{k=1}^{p}(X_{ik}-\overline{X}_{i})^{2}(X_{jk}-\overline{X}_{j})^{2}}}

    上式即为两组数据的相关系数。其中\overline{X}_{i},\overline{X}_{j}分别代表第i、j组数据的均值。相关系数数值在[-1,1]之间,表示两组数据相似程度。如果|r|=1,说明完全相似;|r|接近于0,说明差别很大;如果等于0,就说明完全不相似。

    在相关系数的基础上,我们可以变换为距离度量,即

    d(X_{(i)},X_{(j)})=1-|r(X_{(i)},X_{(j)})|

    或:

    d^{2}(X_{(i)},X_{(j)})=1-r^{2}(X_{(i)},X_{(j)})

    这样就可以表示两组数据之间的距离。距离越远,即越不相似。

    :事实上,由距离度量构造相似系数总是可能的。如r_{ij}=\frac{1}{1+d_{ij}},但是由相似系数构造距离却不总是可行的。

    (14)半正弦(Haversine distance)距离.

    该方法表示的是给定经度和维度的球体上两点之间的距离。该距离在数据处理、机器学习中几乎用到,主要用于导航等问题。而且公式、计算也比较复杂,而且很难处理多维数据,与之对应的是Vincenty距离,表示的是椭球上两点距离。所以兔兔就不把这些公式列出了,感兴趣的同学可以在网上搜索。

    (15)Sorensen-Dice系数。

    该系数与Jaccard系数非常相似,但是该系数更直观一些,它表示两个集合之间的重叠百分比,介于0~1之间。用1减去该系数就可以表示Sorensen-Dice距离。

    d(X,Y)=1-\frac{2|X\cap Y|}{|X|+|Y|}

    与Jaccard距离相似,该距离通常用于图像分割任务或文本相似性分析。

    (16)布雷柯蒂斯(Bray-Curtis)距离。

    该距离通常用于生态学、环境科学中定义距离,取值在[0,1]之间。

    d(X_{(i)},X_{(j)})=\frac{\sum_{k=1}^{p}|X_{ik}-X_{jk}|}{\sum_{k=1}^{p}|X_{ik}+X_{jk}|}

    (17)堪培拉(Canberra)距离。

    堪培拉距离通常对接近0的数值变换非常敏感。与马式距离一样,对数据量纲不敏感。但是它没有考虑变量之间相互独立性与变量之间的相关性它可以看成是曼哈顿距离的加权版本。

    d(X_{(i)},X_{(j)})=\sum_{k=1}^{p}\frac{|X_{ik}-X_{jk}|}{|X_{ik}|+|X_{jk}|}

    (18)Tanimoto距离。

    Tanimoto距离也称为Tanimoto测度,可用于实向量的测量,也可以用于离散值向量测量。s_{T}(X_{(i)},X_{(j)})=\frac{X_{(i)}^{T}X_{(j)}}{||X_{(i)}||^{2}+||X_{(j)}||^{2}-X_{(i)}^{T}X_{(j)}}

    这里Xi与Xj两个向量越相似,s数值越大,也就是距离越近。

    (19)相对熵(KL散度)。

    从这里开始,距离和之前就有很大本质上的不相同。因为前面的距离都满足距离的定义,即满足对称性与三角不等式。例如a与b的距离等于b与a的距离,d(a,b)+d(b,c)>=d(a,c)等等。而从相对熵这里开始,距离便不再满足对称性与三角不等式。与其说是距离,其实更准确来讲是一种损失函数,即在机器学习中衡量两个函数的相近程度,判断预测值与实际值的差别,这种差别(或相近程度)可以看作是一种“距离”。但是从数学角度出发,它并不满足距离的定义。

    D(P||Q)=\sum_{k=1}^{n}P(x_{k})*log(\frac{P(x_{k})}{Q(x_{k})})

    D(P||Q)=\int_{-\propto }^{+\propto}P(x)*log(\frac{P(x)}{Q(x)})dx

    其中的P(x)、Q(x)分别表示两种概率分布的概率密度函数,如果交叉熵越小,说明分布P与分布Q越接近。第一个式子表示的是离散型概率分布的相对熵,第二个表示的是离散型概率分布的相对熵。而在机器学习中,我们通常把向量x通过函数来变换成0~1之间是数,也就变成了概率,并且其中P(x)表示的是真实的概率分布(或真实的值,label),而Q(x)表示理论拟合出来的预测值,x表示每一组数据的向量,根据第一个式子就是n组数据处理后求和。我们目的就是减少理论预测值与实际值label之间的距离,也就是减少相对熵。所以从本质上来说,交叉熵是损失函数的一种构造方法。

    举例:

    例如P(x)的概率分布(一元离散概率分布)为:

    X123
    P(X)0.10.10.8

    Q(x)概率分布为:

    X123
    Q(X)0.20.30.5

    那么D(P||Q)=0.1log\frac{0.1}{0.2}+0.1log\frac{0.1}{0.3}+0.8log\frac{0.8}{0.5}

    事实上,可以发现D(P||Q)\neqD(Q||P)。并且相对熵始终大于零。

    注:关于相对熵的一些性质:

    (1)关于相对熵、熵与交叉熵的关系。

    D(P||Q)=KL(P||Q)=\int_{-\infty}^{+\infty }P(x)log(P(x))dx-\int_{-\infty}^{+\infty}P(x)log(Q(x))dx

    =-H(P)+H(P,Q)

    其中H(P)表示熵(entropy),H(P,Q)表示交叉熵(cross entropy)。对应的就是式子积分的左半部分与右半部分。(对应离散的情况,把积分换成求和即可)。

    (20)交叉熵。

    交叉熵也常常用于机器学习中分类问题,评估实际值label与预测prediction之间的距离。

    H(P,Q)=-\sum_{k=1}^{n}P(x_{k})Q(x_{k})

    H(P,Q)=-\int_{-\infty}^{+\infty}P(x)log(Q(x))dx

    这里的交叉熵也就是(19)中相对熵的组成部分。

    (21)JS散度。

    JS散度也叫做JS距离,是KL散度的一种变形。

    JS(P,Q)=\frac{1}{2}KL(P||\frac{P+Q}{2})+\frac{1}{2}KL(Q||\frac{P+Q}{2})

    其中KL表示的就是(19)中的相对熵。JS散度取值范围为[0,1],两个随机变量分布相同是1,相反是1。也就是值越大,两个分布相差越远。

    (22)F散度。

    F散度是一个函数,衡量两个分布P,Q之间的区别。

    F(P||Q)=\sum_{k=1}^{n}Q(x)f(\frac{P(x_{k})}{Q(x_{k})})

    F(P||Q)=\int_{-\infty}^{+\infty}Q(x)f(\frac{P(x)}{Q(x)})dx

    其中函数f(x)需要满足:f(x)为凸函数,并且f(1)=0。并且,当f(x)=xlog(x)F散度就变成了KL散度;当f(x)=-log(x),那么就变成reverse KL散度。以下是常用的f(x)函数与对应的散度。

    散度f(x)
    KL-散度xlog(x)
    Pearson \chi ^{2} 散度

    (x-1)^{2}

    x^{2}-1

    x^{2}-x

    Neumann \chi ^{2} 散度

    \frac{1}{x}-1

    \frac{1}{x}-x

    α-散度\begin{Bmatrix}\frac{4}{1-\alpha^{2}}&if&\alpha\neq \pm 1\\xlnx&if&\alpha=1\\-lnx&if&\alpha=-1 \end{}
    α-散度\begin{Bmatrix}\frac{x^{\alpha}-x}{\alpha(\alpha-1)}&if&\alpha\neq 0,1\\xlnx&if&\alpha=1\\-lnx&if&\alpha=0 \end{}
    Hellinger 距离

    (\sqrt{x}-1)^{2}

    2(1-\sqrt{x})

    Total variation distance\frac{1}{2}|x-1|
    reverse KL 散度-log(x)

    (23)巴氏距离。

    巴氏距离(巴塔恰里雅距离,Bhattacharyya distance)用于测量两个离散概率分布,常在分类中测量类之间的可分离性。

    B_{C}(P,Q)=\sum_{k=1}^{n}\sqrt{p(x_{k})Q(x_{k})}

    B_{C}(P,Q)=\int_{-\infty}^{+\infty}\sqrt{P(x)Q(x)}dx

    D_{B}(P,Q)=-ln[B_{C}(P,Q)]

    其中B_{C}表示巴氏系数,介于[0,1]之间,D_{B}表示巴氏距离,为0到正无穷之间的数。

    (24)Hellinger 距离。

    该距离被用来衡量两个概率分布之间的相似性,属于F散度中的一种。

    D(X,Y)=\frac{1}{\sqrt{2}}\sqrt{\sum_{k=1}^{n}(\sqrt{X_{k}}-\sqrt{Y_{k}})^{2}}

    这里X,Y代表两组变量(两个概率分布),n是数据个数。

    (25)逐点互信息。

    逐点互信息衡量两个事物的相关性。设事件A,B发生概率为p(x),p(y),两个事件同时发生概率为p(x,y),则:

    PMI(p,q)=log\frac{p(x,y)}{p(x)p(y)}

    并且,两个事件相关性越大,则PMI越大(也就是距离越小)。并且根据条件概率,该式也可以写成:PMI(p,q)=log\frac{p(x|y)}{p(x)}.

    PMI在机器学习中经常用于衡量模型训练之后label与prediction的关系。

    (26)pearson系数。

    pearson系数用于度量两个变量之间的相关性,就是线性相关性,值为[-1,1]。

    \rho (x,y)=\frac{cov(x,y)}{\sqrt{\sigma_{x}\sigma_{y}}}

    x,y表示两个变量(指标)。相关性越大,值越大,距离就越小。

    (27)Ochiai系数。

    这个系数是余弦相似度的一种形式,衡量两个集合的相似程度。

    K(A,B)=\frac{|A\cap B|}{\sqrt{|A|.|B|}}

    |A|表示的是集合A的大小。

    (28)Hausdorff距离。

    该距离主要用于衡量两个点集合之间的距离。

    对于点集合A={a1,a2,...},B={b1,b2,...},集合A,B距离表示为:

    H(A,B)=max[h(A,B),h(B,A)]

    h(A,B)=max_{(a\epsilon A)}[min_{(b\epsilon B)}d(a,b)]

    h(B,A)=max_{(b\epsilon B)}[min_{(a\epsilon A)}d(b,a)]

    其中H(A,B)称为双向Hausdorff距离,h(A,B)为从点集A到点集B的单向Hausdorff距离,d(a,b)表示两点之间距离度量方法,通常用欧式距离。对于h(A,B),实际上就是先计算A集合中ai点到B集合各个点的距离,找最短的那个距离,然后再从这些最短距离当中找最长的那个距离。(关于深入理解与算法实现,兔兔在第二篇当中会详细说明)。

    (29)Levenshtein距离。

    这个距离用于计算两个字符串之间的距离。与汉明距离不同,它可以计算长度不同的序列距离,所以它也可以用于度量两个DNA序列之间的相似性(距离),也可以在自然语言处理中计算字之间的距离。

    它的度量方式是看至少需要多少次处理能把一个字符串变成另一个字符串。所以该距离也称为编辑距离(Edit Distance),设两个字符串a,b,长度为|a|,|b|,则它们的Levenshtein距离为:

    lev_{a,b}(i,j)=\begin{Bmatrix}max(j,j) &if&min(i,j)=0\\min\begin{Bmatrix}lev_{a,b}(i-1,j)+1\\lev_{a,b}(i,j-1)+1\\lev_{a,b}(i-1,j-1)+1_{a_{i}\neq b_{i}} \end{}&otherwise\end{}

    Sim_{a,b}=1-\frac{lev_{a,b}(|a|,|b|)}{max(|a|,|b|)}

    很明显,它的算法结构是一种递归形式,只要函数中有递归表达式与终止条件,该算法便可以实现。Sim表示两个字符串的相似度。其中a_{i}\neq a_{j}时第四个式子后面+1,如果相等就是+0。

    (30)含名义变量样本的相似性度量。

    对于含有名义变量的样本,我们可以记对应变量取值相同的个数为m1,不同的为m2,则样本距离定义为:

    d=\frac{m2}{m1+m2}

    例如 ,对于学员资料,两个学员信息如下:

    X1英语统计非教师校外本科
    X2英语金融教师校外本科以下

    那么X1与X2配合的个数是2,不配合(不相同)的个数是4,则距离为d=4/6=2/3。其实该度量方法本质上就是汉明距离。

    除了上述方法,也可以用Jaccard系数,把两个数据看成两个集合来计算。而且针对二进制属性,有序变量、混合型属性等等,也有很多的相应度量方法。

    总结:

    在本文中,针对研究对象的不同,我们采用了不同的距离度量方法,并且每一种研究对象一般都有多种不同的度量方法。这些公式大部分比较好理解,也容易用算法实现。但其中也有一些需要深入的理解,并且需要引入一些相关的基础知识。所以兔兔会在第二篇进行进一步讲解。

    展开全文
  • 无监督距离度量学习工具包:Matlab中无监督距离度量学习工具包
  • 常见距离度量方法优缺点对比!

    千次阅读 2021-02-09 21:19:51
    它允许你在距离度量上有很大的灵活性,如果你对p和许多距离度量非常熟悉,这将是一个巨大的好处。 7. Jaccard指数 Jaccard指数(或称交集比联合)是一种用于计算样本集相似性和多样性的度量。它是交集的大小除以样本...
  • 几种距离度量方法比较

    千次阅读 2019-02-04 13:20:43
    欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。 二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离: 三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的...
  • 文中提出了一种基于距离度量的聚类算法,算法使用新的距离度量代替了K均值聚类算法的欧式距离,应用新的距离度量之后,数据点的权重不再只为1或0,而是由系数 来确定,这就将硬划分转化为软划分。最后经过实验证明了...
  • k-近邻算法之距离度量

    千次阅读 2021-03-04 23:52:56
    k-近邻算法之距离度量 1 欧式距离(Euclidean Distance): 【通过距离平方值进行计算】 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。 举例:...
  • 距离度量是许多机器学习算法中的关键问题。 本文考虑了必须以链接和不能链接的形式从成对约束中学习的一般问题。 作为一种辅助信息,必须链接指示两个数据点对必须在同一类别中,而不能链接指示两个数据点必须在两个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,301
精华内容 34,920
关键字:

距离度量

友情链接: BrisCAD_Jig.rar