jaccard距离[jaccard距离的效果如何]

区块链3年前 (2023)发布 EditorY
22,305 0

本篇文章给大家谈谈jaccard距离,以及jaccard距离的效果如何对应的知识点,币牛牛致力于为用户带来全面可靠的币圈信息,希望对各位有所帮助!

1.曼哈顿距离(Manhattan Distance)

定义:在欧几里德空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。

想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾 驶距离就是这个“曼哈顿距离”,也称为城市街区距离(City Block distance)。

2.欧式距离(Euclidean Distance)

定义:欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。

欧式距离是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)

图中红线代表曼哈顿距离,绿色代表欧式距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离。

3.切比雪夫距离(Chebyshev distance)

定义:切比雪夫距离是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差**值的最大值。

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

其中p是一个变参数。

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

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

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

闵可夫斯基距离比较直观,但是它与数据的分布无关,具有一定的局限性,如果 x 方向的幅值远远大于 y 方向的值,这个距离公式就?

会过度放大 x 维度的作用。所以,在计算距离之前,我们可能还需要对数据进行 z-transform 处理,即减去均值,除以标准差(即 标准化欧式?

距离)。

这种方法在假设数据各个维度不相关的情况下利用数据分布的特性计算出不同的距离。如果维度相互之间数据相关(例如:身高较高的?

信息很有可能会带来体重较重的信息,因为两者是上述文章内容就是联的),这时候就要用到马氏距离(Mahalanobis distance)了。

5.?标准化欧式距离(Standardized Euclidean distance)

思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。假设样本集 X 的均值(mean)为 m ,标准差(standard deviation)为 s , X 的“标准化变量”表示为:

则标准化后的欧式距离公式为:

如果将方差的倒数看成一个权重,也可称之为加权欧氏距离(Weighted Euclidean distance)

6.马氏距离(Mahalanobis distance)

马氏距离表示数据的协方差距离,是一种有效的计算两个未知样本集的相似度的方法。其计算是建立在总体样本的基础上的。即,它考虑到各种特性之间的联系,是尺度无关的(独立于测量尺度)。

一原始多维样本数据?Xnm ( m 维,n 个样本 X=(X1, X2,…,Xn)):

对于一个样本的总体均值为μX=(μX1,μX2,…,μXm),其协方差为Σ,的多变量矢量X=(X1, X2,…,Xn)T,其到样本中心 u 的马氏距离为:

而马氏距离也可以定义两个服从同一分布并且其协方差矩阵为Σ的两个随机变量的差异程度:

如果协方差矩阵为单位矩阵,马氏距离就简化为欧氏距离。

而马氏距离如何不受到量纲的影响呢?

1. 下图为二元数据的散点图:

将坐标拿掉以后,如下图:

2.?根据数据本身的提示信息来引入新的坐标轴。 坐标的原点在这些点的中央(根据点的平均值算得)。第一个坐标轴(下图中蓝色的线)沿着数据点的“脊椎”,并向两端延伸,定义为使得数据方差最大的方向。第二个坐标轴(下图红色的线)会与第一个坐标轴垂直并向两端延伸。

3. 然后,我们需要一个比例尺度。用数据沿着每一个坐标轴的标准差来定义一个单位长度。要记住68-95-99.7法则:大约2/3的点需要在离原点一个单位长度的范围内;大约95%的点需要在离原点两个单位的长度范围内。

4.让我们重新沿着正确的方向画图——从左到右,从下到上(相当于旋转一下数据)。同时,并让每个轴方向上的单位长度相同,这样横坐标上一个单位的长度就与纵坐标上的单位长度相同。

假设数据分布是一个二维的正椭圆,x 轴 y 轴均值都为0,x轴的方差为1000,y轴的方差为1,考虑两个点 (1, 0) , (0, 1) 到原点的距离,如果计算的是欧氏距离那么两者相等,但是仔细想一下,因为x轴的方差大,所以 (0, 1) 应该是更接近中心的点,也就是正态分布标准差的 (68, 95, 99.7) 原则。这时候需要对 x , y 轴进行缩放,对应的操作就是在协方差矩阵的对角上加上归一化的操作,使得方差变为1。 假设数据分布是一个二维的椭圆,但是不是正的,比如椭圆最长的那条线是45°的,因为矩阵的对角只是对坐标轴的归一化,如果不把椭圆旋转回来,这种归一化是没有意义的,所以矩阵上的其他元素(非对角)派上用场了。如果椭圆不是正的,说明变量之间是有相关性的(x 大 y 也大,或者负相关),加上协方差非对角元素的意义就是做旋转。

马氏距离,欧式距离,标准化欧式距离小结:

1.?欧式距离

2. 标准化欧式距离:能够体现各个特性在变差大小上的不同,同时,距离与各个特性所用单位无关

3. 马氏距离 :?各种特性之间的联系(如身高与体重)

马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同。

在计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧氏距离计算即可。

满足了条件总体样本数大于样本的维数,但是协方差矩阵的逆矩阵仍然不存在,如三个样本在其所处的二维空间平面内共线。这种情况下,也采用欧氏距离计算。

7.余弦相似度(Cosine Similarity)

余弦相似度更多的是从方向上区分差异,而对**的数值不敏感。因此没法衡量每个维数值的差异,会导致这样一个情况:比如用户对内容评分,5分制,X 和 Y 两个用户对两个内容的评分分别为(1,2)和(4,5),使用余弦相似度得出的结果是0.98,两者极为相似,但从评分上看 X 似乎不喜欢这2个内容,而 Y 比较喜欢,余弦相似度对数值的不敏感导致了结果的误差,需要修正这种不合理性,就出现了调整余弦相似度,即所有维度上的数值都减去一个均值,比如 X 和 Y 的评分均值都是3,那么调整后为(-2,-1)和(1,2),再用余弦相似度计算,得到-0.8,相似度为负值并且差异不小,但显然更加符合现实。

8.汉明距离(Hamming Distance)

两个等长字符串 s1 与 s2 的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。

9.杰卡德距离(Jaccard Distance)

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

10.皮尔逊系数(Pearson Correlation Coefficient)

在统计学中,皮尔逊相关系数,又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,简称?PPMCC或PCCs),是用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。

皮尔逊距离度量的是两个变量X和Y,它可以根据皮尔逊系数定义成???我们可以发现,皮尔逊系数落在??,而皮尔逊距离落在??。

聚类分析有两种主要计算方法,分别是凝聚层次聚类(Agglomerativehierarchicalmethod)和K均值聚类(K-Means)。一、层次聚类层次聚类又称为系统聚类,首先要定义样本之间的距离关系,距离较近的归为一类,较远的则属于不同的类。可用于定义“距离”的统计量包括了欧氏距离(euclidean)、马氏距离(manhattan)、两项距离(binary)、明氏距离(minkowski)。还包括相关系数和夹角余弦。层次聚类首先将每个样本单独作为一类,然后将不同类之间距离最近的进行合并,合并后重新计算类间距离。这个过程一直持续到将所有样本归为一类为止。在计算类间距离时则有六种不同的方法,分别是最短距离法、最长距离法、类平均法、重心法、中间距离法、离差平方和法。下面我们用iris数据集来进行聚类分析,在R语言中所用到的函数为hclust。首先提取iris数据中的4个数值变量,然后计算其欧氏距离矩阵。然后将矩阵绘制热图,从图中可以看到颜色越深表示样本间距离越近,大致上可以区分出三到四个区块,其样本之间比较接近。data=iris[,-5]dist.e=dist(data,method=’euclidean’)heatmap(as.matrix(dist.e),labRow=F,labCol=F)X然后使用hclust函数建立聚类模型,结果存在model1变量中,其中ward参数是将类间距离计算方法设置为离差平方和法。使用plot(model1)可以绘制出聚类树图。如果我们希望将类别设为3类,可以使用cutree函数提取每个样本所属的类别。model1=hclust(dist.e,method=’ward’)result=cutree(model1,k=3)为了显示聚类的效果,我们可以结合多维标度和聚类的结果。先将数据用MDS进行降维,然后以不同的的形状表示原本的分类,用不同的颜色来表示聚类的结果。可以看到setose品种聚类很成功,但有一些virginica品种的花被错误和virginica品种聚类到一起。

jaccard距离[jaccard距离的效果如何]

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

本文的目的就是对常用的相似性度量作一个总结。

欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。

(1) 二维平面上两点a(x 1 ,y 1 ) 与 b(x 2 ,y 2 )间的欧氏距离:

(2) 三维空间两点a(x 1 ,y 1 ,z 1 )与b(x 2 ,y 2 ,z 2 )间的欧氏距离:

(3) 两个n维向量a(x 11 ,x 12 ,…,x 1n )与 b(x 21 ,x 22 ,…,x 2n )间的欧氏距离:

从名字就可以猜出这种距离的计算方法了。想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为 城市街区距离(City Block distance)。

(1) 二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离

(2) 两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离

国际象棋玩过么?国王走一步能够移动到相邻的8个方格中的任意一个。那么国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?自己走走试试。你会发现最少步数总是max( | x2-x1 | , | y2-y1 | ) 步 。有一种类似的一种距离度量方法叫切比雪夫距离。

(1) 二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离

(2) 两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的切比雪夫距离

看不出两个公式是等价的?提示一下:试试用放缩法和夹逼法则来证明。

闵氏距离不是一种距离,而是一组距离的定义。

(1) 闵氏距离的定义

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

其中p是一个变参数。

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

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

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

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

(2)闵氏距离的缺点

闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。

举个例子:二维样本(身高,体重),其中身高范围是150-190,体重范围是50-60,有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c之间的闵氏距离,但是身高的10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本间的相似度很有问题。

简单说来,闵氏距离的缺点主要有两个:

(1) 将各个分量的量纲(scale),也就是“单位”当作相同的看待了。

(2) 没有考虑各个分量的分布(期望,方差等)可能是不同的。

(1) 标准欧氏距离的定义

标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,好吧!那我先将各个分量都“标准化”到均值、方差相等吧。均值和方差标准化到多少呢?这里先复习点统计学知识吧,假设样本集X的均值(mean)为m,标准差(standard deviation)为s,那么X的“标准化变量”表示为:

如果将方差的倒数看成是一个权重,这个公式可以看成是一种 加权欧氏距离(Weighted Euclidean distance)。

(1)马氏距离定义

有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:

也就是欧氏距离了。

若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。

(2)马氏距离的优缺点 :量纲无关,排除变量之间的相关性的干扰。

有没有搞错,又不是学几何,怎么扯到夹角余弦了?各位看官稍安勿躁。几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。

(1) 在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:

(2) 两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦

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

(1)汉明距离的定义

两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。例如字符串“1111”与“1001”之间的汉明距离为2。

应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。

(1) 杰卡德相似系数

两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。

杰卡德相似系数是衡量两个集合的相似度一种指标。

(2) 杰卡德距离

与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。杰卡德距离可用如下公式表示:

杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

(3) 杰卡德相似系数与杰卡德距离的应用

可将杰卡德相似系数用在衡量样本的相似度上。

样本A与样本B是两个n维向量,而且所有维度的取值都是0或1。例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。

p :样本A与B都是1的维度的个数

q :样本A是1,样本B是0的维度的个数

r :样本A是0,样本B是1的维度的个数

s :样本A与B都是0的维度的个数

那么样本A与B的杰卡德相似系数可以表示为:

这里p+q+r可理解为A与B的并集的元素个数,而p是A与B的交集的元素个数。

而样本A与B的杰卡德距离表示为:

相关系数是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的**值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。

(2)相关距离的定义

信息熵并不属于一种相似性度量。那为什么放在这篇文章中啊?这个。。。我也不知道。 (╯▽╰)

信息熵是衡量分布的混乱程度或分散程度的一种度量。分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。

参数的含义:

n:样本集X的分类数

pi:X中第i类元素出现的概率

信息熵越大表明样本集S分类越分散,信息熵越小则表明样本集X分类越集中。。当S中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n)。当X只有一个分类时,信息熵取最小值0

距离方法

1、文本的表示

1.1、V表示

1.2、词向量表示

1.3、迁移方法

2、距离计算方法

2.1、欧氏距离 (L 2 范数)、曼哈顿距离 (L 1 范数)、 明氏距离

2.2、汉明距离

2.3、Jaccard相似系数、 Jaccard距离( 1-Jaccard相似系数)

2.4、余弦距离

2.5、皮尔森相关系数

2.5、编辑距离

场景举例:

1)计算 Query 和文档的相关度、2)问答系统中计算问题和答案的相似度、3)广告系统中计算 Query 和广告词的匹配程度、4)推荐系统中 要给某个用户推荐某件物品,计算这件物品和这个用户兴趣的相似度

更多地,判断两个query表达的意思是否相同也可以看作属于文本相似度的范畴。

相似度一定是指两个东西(姑且分别用 P 和 Q 表示)的相似程度,而这两个东西可以是任何形式的,例如文本、图片、声音等等。最终要计算相似度,那必须把这些东西抽象成数学形式,说白了 ,就是怎么用数字把 这些 东西表示出来, 一 般会表示成向量或者矩阵。那如果表示成了向量, 计算相似度就可以使用大家在数学课上学的知识了。

这里希望可以比较清晰全面地介绍一下文本相似度的计算方法,目前来说,大致分为距离、hash、深度学习三种方法。

这些所谓的距离其实都是一些 固定 的公式而己,关键在于如何应用。实际应用中可以使用tf-idf、word2vec、LDA等方法实现相似度的距离计算。

很多相似度的第一步其实都是文本的表示问题,即把文本用数字的形式表示出来,这一步目前主要有 V(vector space model) ,和 词向量表示 两种方式。

这种方法其实灵活性较大,可以基于分词,对于中文基于字符或n-grams的表示也有一定效果。

1) tf-idf/bow表示 :在给定文档集合C和词典D的条件下,将某篇文档通过词袋模型表示成一个个的词,而后根据 TF-IDF 为每个词计算出一个实数值;

由于词典D的大小为M,因此 将这篇文档转化成一个M维向量 ,如果词典中某个词未出现在文档中,则这个词的在向量中对应的元素为0,若某个词出现在文档中,则这个词在向量中 对应的元素值为这个词的tf-idf值 。这样,就把文档表示成向量了,而这就是 向量空间模型(vector space model) 。从这里也可看出:向量空间模型并没有catch住词(term)与词(term)之间的关系,它假设各个term之间是相互独立的。

而有了文档向量,就可以计算文档之间的相似度了。

这种表示方法与词典大小相关,往往会使文本的表示比较稀疏且高维,可以通过PCA缓解这一问题。

2) 主题模型表示 :实际上V可以作为一种文本表示的思想:把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度。

在这个角度,使用LDA,LSA等主题模型同样可以完成文本的V表示:将文本表示为topic的向量空间。

这种方法维度可自定义(topic数),且不稀疏,但是可能存在文本对之间距离相似度分布空间密集的情况导致效果不佳。

这种方法一般直接将文本分词后 将词向量相加除以句子长度就可得到 。也可以使用如 ooth inverse frequency的加权方法 将词向量加权:每个词嵌入都由a/(a + p(w))进行加权,其中a的值经常被设置为0.01,而p(w)是词语在语料中预计出现的频率。

一般来说word2vec的词向量方法 强于glove方法 ,而对于word2vec,cbow方法强于skip-gram(具体原因并不复杂,感兴趣可以从训练方法角度思考一下~)

更多地,上述文本表示方法其实会损失或无法捕捉到语义信息,通过bert、elmo等预训练方法的表示更加靠谱,也可以用于无监督的文本相似度计算。

欧氏距离:

曼哈顿距离:

表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

(1)雅各相似系数:

两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。 

杰卡德相似系数是衡量两个集合的相似度一种指标。

实际使用中,可以用去重与不去重两种方式计算,更多地,可以转换为交集的tf-idf值之和除以并集的tf-idf值之和

(2) 杰卡德距离

??与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。

杰卡德距离可用如下公式表示:

杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

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

皮尔森相关系数在推荐系统用的较多,它的公式如下 :

指两个字符串,由一个变成另一个所需的最少的编辑次数,这个编 就包括替换、插入、删除操作。

文本相似度的计算一般使用V/cbow+cos距离/欧式距离,或jaccard距离

Dice 系数可以计算两个字符串的相似度:Dice(s1,s2)=2*comm(s1,s2)/(leng(s1)+leng(s2))。

遗传距离指个体、群体或种之间用DNA序列或等位基因频率来估计的遗传差异大小。衡量遗传距离的指标包括用于数量性状分析的欧式距离(D),可用于质量性状和数量性状的Gower距离(DG)和Roger距离(RD),用于二元数据的改良Roger距离(GDMR)、NeiLi距离(GDNL)、Jaccard距离(GDJ)和简单匹配距离(GD)等:

D=[(x1-y1)2+(x2-y2)2+…(xp-yp)2]1/2,这里x1,x2,…,xp和y1,y2,…,yp分别为两个个体(或基因型、群体)i和j形态学性状p的值。

两个自交系之间的遗传距离Dith=∑[(xi(p)-yj(p))2/varx(p)]1/2,这里xi(p)和yj(p)分别为自交系i和j第p个性状的值,varx(p)为第p个数量性状在所有自交系中的方差。

DG=1/p∑wkdijk,这里p为性状数目,dijk为第k个性状对两个个体i和j间总距离的贡献,dijk=|dik-xjk|,dik和djk分别为i和j的第k个性状的值,wk=1/Rk,Rk为第k个性状的范围(range)。

当用分子标记作遗传多样性分析时,可用下式:d(i,j)=constant(∑|Xai-Xaj|r)1/r,这里Xai为等位基因a在个体i中的频率,n为每个位点等位基因数目,r为常数。当r=2时,则该公式变为Roger距离,即RD=1/2[∑(Xai-Xaj)2]1/2。

当分子标记数据用二元数据表示时,可用下列距离来表示:

GDNL=1-[2N11/(2N11+N10+N01)]

GDJ=1-[N11/(N11+N10+N01)]

GD=1-[(N11+N00)/(N11+N10+N01+N00)]

GDMR=[(N10+N01)/2N]0.5

这里N11为两个个体均出现的等位基因的数目,N00为两个个体均未出现的等位基因数目,N10为只在个体i中出现的等位基因数目,N01为只在个体j中出现的等位基因数目,N为总的等位基因数目。谱带在分析时可看成等位基因。

在实际操作过程中,选择合适的遗传距离指标相当重要。一般来说,GDNL和GDJ在处理显性标记和共显性标记时是不同的,用这两个指标分析自交系时排序结果相同,但分析杂交种中的杂合位点和分析杂合基因型出现频率很高的群体时其遗传距离就会产生差异。根据以前的研究结果,建议在分析共显性标记(如RFLP和SSR)时用GDNL,而在分析显性标记(如AFLP和RAPD)时用GD或GDJ。GD和GDMR,前者可用于巢式聚类分析和分子方差分析(AMOVA),但后者由于有其重要的遗传学和统计学意义而更受青睐。

在衡量群体(居群)的遗传分化时,主要有三种统计学方法:一是χ2测验,适用于等位基因多样性较低时的情形,二是F统计(Wright,1951),三是GST统计(Nei,1973)。在研究中涉及到的材料很多时,还可以用到一些多变量分析技术,如聚类分析和主成分分析等等。

距离(distance,差异程度)、相似度(similarity,相似程度)方法可以看作是以某种的距离函数计算元素间的距离,这些方法作为机器学习的基础概念,广泛应用于如:Kmeans聚类、协同过滤推荐算法、相似度算法、MSE损失函数等等。本文对常用的距离计算方法进行归纳以及解析,分为以下几类展开:

对于点x=(x1,x2…xn) 与点y=(y1,y2…yn) , 闵氏距离可以用下式表示:

闵氏距离是对多个距离度量公式的概括性的表述,p=1退化为曼哈顿距离;p=2退化为欧氏距离;切比雪夫距离是闵氏距离取极限的形式。

曼哈顿距离 公式:

欧几里得距离公式:

如下图蓝线的距离即是曼哈顿距离(想象你在曼哈顿要从一个十字路口开车到另外一个十字路口实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源,也称为城市街区距离),红线为欧几里得距离:

切比雪夫距离起源于国际象棋中国王的走法,国际象棋中国王每次只能往周围的8格中走一步,那么如果要从棋盘中A格(x1,y1)走到B格(x2,y2)最少需要走几步?你会发现最少步数总是max(|x2-x1|,|y2-y1|)步。有一种类似的一种距离度量方法叫切比雪夫距离。

切比雪夫距离就是当p趋向于无穷大时的闵氏距离:

距离函数并不一定是距离度量,当距离函数要作为距离度量,需要满足:

由此可见,闵氏距离可以作为距离度量,而大部分的相似度并不能作为距离度量。

闵氏距离也是Lp范数(如p==2为常用L2范数正则化)的一般化定义。

下图给出了一个Lp球( ||X||p = 1 )的形状随着P的减少的可视化图:

距离度量随着空间的维度d的不断增加,计算量复杂也逐增,另外在高维空间下,在维度越高的情况下,任意样本之间的距离越趋于相等(样本间最大与最小欧氏距离之间的相对差距就趋近于0),也就是维度灾难的问题,如下式结论:

对于维度灾难的问题,常用的有PCA方法进行降维计算。

假设各样本有年龄,工资两个变量,计算欧氏距离(p=2)的时候,(年龄1-年龄2)2 的值要远小于(工资1-工资2)2 ,这意味着在不使用特征缩放的情况下,距离会被工资变量(大的数值)主导, 特别当p越大,单一维度的差值对整体的影响就越大。因此,我们需要使用特征缩放来将全部的数值统一到一个量级上来解决此问题。基本的解决方法可以对数据进行“标准化”和“归一化”。

另外可以使用马氏距离(协方差距离),与欧式距离不同其考虑到各种特性之间的联系是(量纲)尺度无关 (Scale Invariant) 的,可以排除变量之间的相关性的干扰,缺点是夸大了变化微小的变量的作用。马氏距离定义为:

马氏距离原理是使用矩阵对两两向量进行投影后,再通过常规的欧几里得距离度量两对象间的距离。当协方差矩阵为单位矩阵,马氏距离就简化为欧氏距离;如果协方差矩阵为对角阵,其也可称为正规化的欧氏距离。

根据向量x,y的点积公式:

我们可以利用向量间夹角的cos值作为向量相似度[1]:

余弦相似度的取值范围为:-1~1,1 表示两者完全正相关,-1 表示两者完全负相关,0 表示两者之间独立。余弦相似度与向量的长度无关,只与向量的方向上述文章内容就是,但余弦相似度会受到向量平移的影响(上式如果将 x 平移到 x+1, 余弦值就会改变)。

另外,归一化后计算欧氏距离,等价于余弦值:两个向量x,y, 夹角为A,欧氏距离D=(x-y)^2 = x 2+y 2-2|x||y|cosA = 2-2cosA

协方差是衡量多维数据集中,变量之间相关性的统计量。如下公式X,Y的协方差即是,X减去其均值 乘以 Y减去其均值,所得每一组数值的期望(平均值)。

如果两个变量之间的协方差为正值,则这两个变量之间存在正相关,若为负值,则为负相关。

皮尔逊相关系数数值范围也是[-1,1]。皮尔逊相关系数可看作是在余弦相似度或协方差基础上做了优化(变量的协方差除以标准差)。它消除每个分量标准不同(分数膨胀)的影响,具有平移不变性和尺度不变性。

卡方检验X2,主要是比较两个分类变量的关联性、独立性分析。如下公式,A代表实际频数;E代表期望频数:

Levenshtein 距离是 编辑距离 (Editor Distance) 的一种,指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

像hallo与hello两个字符串编辑距离就是1,我们通过替换”a“ 为 ”e“,就可以完成转换。

汉明距离为两个等长字符串对应位置的不同字符的个数,也就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例如:1011101 与 1001001 之间的汉明距离是 2,“toned” 与 “roses” 之间的汉明距离是 3

另外的,对于字符串距离来说,不同字符所占的份量是不一样的。比如”我乐了“ 与【“我怒了”,”我乐了啊” 】的Levenshtein 距离都是1,但其实两者差异还是很大的,因为像“啊”这种语气词的重要性明显不如“乐”,考虑字符(特征)权重的相似度方法有:TF-IDF、BM25、WMD算法。

Jaccard 取值范围为0~1,0 表示两个集合没有重合,1 表示两个集合完全重合。

但Dice不满足距离函数的三角不等式,不是一个合适的距离度量。

基础地介绍下信息熵,用来衡量一个随机变量的不确定性程度。对于一个随机变量 X,其概率分布为:

互信息用于衡量两个变量之间的关联程度,衡量了知道这两个变量其中一个,对另一个不确定度减少的程度。公式为:

如下图,条件熵表示已知随机变量X的情况下,随机变量Y的信息熵,因此互信息实际上也代表了已知随机变量X的情况下,随机变量Y的(信息熵)不确定性的减少程度。

散度解决了 KL 散度不对称的问题,定义为:

群体稳定性指标(Population Stability Index,PSI), 可以看做是解决KL散度非对称性的一个对称性度量指标,用于度量分布之间的差异(常用于风控领域的评估模型预测的稳定性)。

psi与散度的形式是非常类似的,如下公式:

PSI的含义等同P与Q,Q与P之间的KL散度之和。

DTW 距离用于衡量两个序列之间的相似性,适用于不同长度、不同节奏的时间序列。DTW采用了动态规划DP(dynamic programming)的方法来进行时间规整的计算,通过自动warping扭曲 时间序列(即在时间轴上进行局部的缩放),使得两个序列的形态尽可能的一致,得到最大可能的相似度。(具体可参考[5])

图结构间的相似度计算,有图同构、最大共同子图、图编辑距离、Graph Kernel 、图嵌入计算距离等方法(具体可参考[4][6])。

度量学习的对象通常是样本特征向量的距离,度量学习的关键在于如何有效的度量样本间的距离,目的是通过训练和学习,减小或限制同类样本之间的距离,同时增大不同类别样本之间的距离,简单归类如下[2]:

最后,附上常用的距离和相似度度量方法[3]:

都看完了嘛?相信现在您对jaccard距离有一个初级的认识了吧!也可以收藏币牛牛页面获取更多jaccard距离的效果如何知识哟!区块链、虚拟币,我们是认真的!

© 版权声明

相关文章