文章目录

  • 欧式距离
  • 标准化欧式距离
  • 曼哈顿距离
  • 切比雪夫距离
  • 闵可夫斯基距离
  • 余弦距离
  • 马氏距离
  • 海明距离
  • 杰卡德距离
  • 相关距离
  • 信息熵
  • 基于核函数的度量


  相似性度量是机器学习中一个非常基础的概念:是评定两个事物之间相似程度的一种度量,尤其是在聚类、推荐算法中尤为重要。其本质就是一种量化标准。在机器学习中主要是用于衡量样本之间的相似程度。

  为什么要有一个衡量标准?这世间万物都是公说公有理,婆说婆有理,而这衡量标准一旦定下来,大家都得在这里面玩。这人世间的法律制度,大大小小的条文规矩都是衡量标准。

  那有些同学可能就会说了,我也想制定标准,可以是可以,但是得大家听你的吖,就像制定下面这些距离标准的人哪个不是赫赫有名。现在也有一些论文和机构在制定标准,背后都是学术界的泰斗人物。如果你不够强大到改变规则,就好好研究规则,在里面玩,如果你能改变规则,那就好好研究规则,在改规则里面玩,不知道要香到哪里去了,emmmm。

  回归正题,我们有些场合需要依据样本的自相似性来对样本进行分类,而哪些样本之间很像,哪些样本之间不像,需要一个度量标准,相似性度量的方法有很多,主要包括以下几种:

欧式距离

  欧式距离(Euclidean Distance)也称欧几里得距离或欧几里得度量,是一种最常用的一种度量方法,主要描述为以下数学形式:两个聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离维向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_02聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_03之间的欧式距离(euclidean distance)为其对应分量的平方和再开根号:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_04

  其实说白了就是欧几里得空间中两点的“普通”直线距离。

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_05

  欧式距离是一种二范数形式,具有在特征空间中转化可旋转的不变性,一般趋向于构建球形聚类簇。然而线性变换会使其相关性产生形变。

标准化欧式距离

  根据数据各维分量的不同,将各个分量部分都“标准化”到均值、方差相等。这样做的目的是使每一个属性对距离的贡献率相同,消除特征之间量纲差异

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离维向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_02聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_03之间的标准化欧式距离为:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_09

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_10表示方差,方差的倒数可以看作是一种权重,标准化欧式距离本质上是一种加权欧式距离

曼哈顿距离

  曼哈顿距离(Manhattan Distance)也称为L1距离、城市区块距离(City Block Distance) 。基于曼哈顿纽约市区的网格状街道地理所得出来的一种距离。

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_11

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离维向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_02聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_03之间的标曼哈顿距离为:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_15

  在欧式空间的直角坐标系上,两点所形成的线段对轴产生的投影的距离总和。这种距离不符合在特征空间中转化和旋转的不变性

切比雪夫距离

  切比雪夫距离(Chebyshev Distance)也称为棋盘距离,是由一致范数(uniform norm)(或称为上确界范数)所衍生的度量,也是超凸度量(injective metric space)的一种方法。它的典型应用是解决国际象棋中的国王从一个格子走到另一个格子最少需要几步的问题。

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_16

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离维向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_02聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_03之间的标切比雪夫距离为:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_20

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_21聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_22中对应分量差值中值最大的那一个。通过等价性可以由放缩法和夹逼定理(squeese theorem)证得其等价于:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_23

闵可夫斯基距离

  闵可夫斯基距离(Minkowski Distance)也称为闵式距离,定义如下:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离维向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_02聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_03之间的标闵可夫斯基距离为:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_27

  • 聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_28时,它是曼哈顿距离
  • 聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_29时,它是欧式距离
  • 聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_30时,它是切比雪夫距离

  所以闵式距离是上述三种距离的一般性表示。

  其图形表示如下:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_31

  闵氏距离将各个分量的量纲,也就是“单位”当作相同看待没有考虑各个量的分布(如期望、方差等)可能不同。

余弦距离

  向量的几何意义不只包含方向,余弦距离(cosine distance)是度量两个向量方向差异的一种方法。是方向性地判断,而不是大小的判断。两个方向相同的矢量的余弦相似度为1 ,两个相对于彼此成90°角的向量的相似度为0,而两个完全相反的向量的相似度为-1,而与幅度无关。

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离维向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_02聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_03之间的标夹角余弦度量为:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_35

  即:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_36

马氏距离

  马氏距离(Mahalanobis distance)是一种基于样本分布的一种距离,它是规范化的主成分空间中的欧式距离。

  那什么是规范化的主成分空间呢?规范化的主成分空间就是利用主成分分析,对一些数据进行主成分分解,再对所有主成分分解轴做归一化,形成新的坐标轴,由这些坐标轴组成的空间就是规范化的主成分空间。

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_37个向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_38,聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_39,聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_40,聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_41,协方差矩阵记为聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_42,均值记为向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_43。则样本向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_44聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_45的马氏距离

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_46

  向量聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_47聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_48之间的马氏距离

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_49

  若协方差矩阵是单位矩阵(各样本向量之间独立同分布),聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_47聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_48之间的马氏距离等于它们的欧式距离

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_52

  如果协方差矩阵是对角矩阵的话,此时的马氏距离就变成了标准化欧式距离。

  马氏距离具有以下特点

  • 量纲无关,排除变量之间的相关性的干扰;
  • 马氏距离的计算是建立在总体样本的基础上;因为我们考虑了样本的均值,样本的协方差。
  • 计算马氏距离过程中,要求总体样本数大于样本的维数。

海明距离

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_53聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_54,将其中一个变换为另一个所需要的最小变换次数

  例如:字符串“1111”与“1001”之间的海明距离为2。

杰卡德距离

  在了解杰卡德距离之前我们需要了解一下杰卡德相似系数(Jaccard similarity coefficient):

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_55聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_56的交集元素在聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_55聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_56的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_59表示:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_60

  杰卡德距离描述的是与杰卡德相似系数相反的一个概念:用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_61

相关距离

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_62聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_63相关程度的一种方法,相关系数的取值范围是聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_64。如皮尔逊相关系数定义为:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_65

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_62聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_63相关度越高。当聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_62聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_63线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。

  有了相关系数之后我们定义相关距离(correlation distance):

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_70

信息熵

  上文讨论的都是度量两个样本(向量)之间的距离

  信息熵(information entropy)描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。

  如果数据分布越分散,对应的信息熵就越大;反之,如果分布越有序,信息熵则越小。

  信息熵的公式可以表示为如下形式:

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_聚类分析样品相似性 欧式距离 java_71

聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离为样本聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_62的分类数;聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_曼哈顿距离_74聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_62中第聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_76类元素出现的概率。

基于核函数的度量

  我们为什么要用到核函数?因为原始样本空间中的数据是线性不可分的,采用核函数映射到高维空间,在这个高维空间中使其线性可分。

  因此,对于原始样本空间当中,距离函数需满足:

  • 聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_77,即距离要非负;聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_方差_78,即自身的距离为0。
  • 对称性,即聚类分析样品相似性 欧式距离 java 聚类分析相似性度量_切比雪夫距离_79