总结各类距离度量方法。

1、欧氏距离

  最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中,如点 x = (x1,…,xn) 和 y = (y1,…,yn) 之间的距离为:

两点之间的距离 java 两点之间的距离公式_标准差

(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:

两点之间的距离 java 两点之间的距离公式_曼哈顿距离_02

(2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:

两点之间的距离 java 两点之间的距离公式_ci_03

(3)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:

两点之间的距离 java 两点之间的距离公式_两点之间的距离 java_04

也可以用表示成向量运算的形式:

两点之间的距离 java 两点之间的距离公式_ci_05

 

2、曼哈顿距离

  我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。例如在平面上,坐标(x1, y1)的点P1与坐标(x2, y2)的点P2的曼哈顿距离为:|x1-x2|+|y1-y2|,要注意的是,曼哈顿距离依赖座标系统的转度,而非系统在座标轴上的平移或映射。
  通俗来讲,想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。而实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源, 同时,曼哈顿距离也称为城市街区距离(City Block distance)。

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

Dist=|x1-x2|+|y1-y2|
(2)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离:

两点之间的距离 java 两点之间的距离公式_ci_06

 

3、夹角余弦(Cosine)

  几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。
(1)在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:

两点之间的距离 java 两点之间的距离公式_ci_07

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

两点之间的距离 java 两点之间的距离公式_ci_08

  类似的,对于两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度,即:

两点之间的距离 java 两点之间的距离公式_曼哈顿距离_09

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

 

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

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

两点之间的距离 java 两点之间的距离公式_ci_10

 

 

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

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

两点之间的距离 java 两点之间的距离公式_标准差_11

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

(3) 杰卡德相似系数与杰卡德距离的应用
  可将杰卡德相似系数用在衡量样本的相似度上。
举例:样本A与样本B是两个n维向量,而且所有维度的取值都是0或1,例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。
M11 :样本A与B都是1的维度的个数
M01:样本A是0,样本B是1的维度的个数
M10:样本A是1,样本B是0 的维度的个数
M00:样本A与B都是0的维度的个数
依据上文给的杰卡德相似系数及杰卡德距离的相关定义,样本A与B的杰卡德相似系数J可以表示为:

两点之间的距离 java 两点之间的距离公式_标准差_12

  这里M11+M01+M10可理解为A与B的并集的元素个数,而M11是A与B的交集的元素个数。而样本A与B的杰卡德距离表示为J’:

两点之间的距离 java 两点之间的距离公式_曼哈顿距离_13

 

5、皮尔逊系数(Pearson Correlation Coefficient)(两向量的夹角余弦值)

   在具体阐述皮尔逊相关系数之前,有必要解释下什么是相关系数 ( Correlation coefficient )与相关距离(Correlation distance)。
相关系数 ( Correlation coefficient )的定义是:

两点之间的距离 java 两点之间的距离公式_ci_14

其中,E为数学期望或均值,D为方差,D开根号为标准差,E{ [X-E(X)] [Y-E(Y)]}称为随机变量X与Y的协方差,记为Cov(X,Y),即Cov(X,Y) = E{ [X-E(X)] [Y-E(Y)]},而两个变量之间的协方差和标准差的商则称为随机变量X与Y的相关系数,记为ρxy 
 
  相关系数衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。
  具体的,如果有两个变量:X、Y,最终计算出的相关系数的含义可以有如下理解:

 

Dxy=1−ρxy
(1)当相关系数为0时,X和Y两变量无关系。
(2)当X的值增大(减小),Y值增大(减小),两个变量为正相关,相关系数在0.00与1.00之间。
(3)当X的值增大(减小),Y值减小(增大),两个变量为负相关,相关系数在-1.00与0.00之间。

OK,接下来,咱们来重点了解下皮尔逊相关系数。
  在统计学中,皮尔逊积矩相关系数(英语:Pearson product-moment correlation coefficient,又称作 PPMCC或PCCs, 用r表示)用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。
通常情况下通过以下取值范围判断变量的相关强度:

两点之间的距离 java 两点之间的距离公式_曼哈顿距离_15

  在自然科学领域中,该系数广泛用于度量两个变量之间的相关程度。它是由卡尔•皮尔逊从弗朗西斯•高尔顿在19世纪80年代提出的一个相似却又稍有不同的想法演变而来的。这个相关系数也称作“皮尔森相关系数r”。

(1)皮尔逊系数的定义:
  两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商:

两点之间的距离 java 两点之间的距离公式_标准差_16

以上方程定义了总体相关系数, 一般表示成希腊字母ρ(rho)。基于样本对协方差和方差进行估计,可以得到样本标准差, 一般表示成r:

两点之间的距离 java 两点之间的距离公式_两点之间的距离 java_17

  一种等价表达式的是表示成标准分的均值。基于(Xi, Yi)的样本点,样本皮尔逊系数是

两点之间的距离 java 两点之间的距离公式_ci_18

(2)皮尔逊相关系数的适用范围

当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:
(1)两个变量之间是线性关系,都是连续数据。
(2)两个变量的总体是正态分布,或接近正态的单峰分布。
(3)两个变量的观测值是成对的,每对观测值之间相互独立。