1 距离公式的基本性质
在机器学习过程中,对于函数 dist(., .),若它是⼀"距离度量" (distance measure),则需满⾜⼀些基本性质:
⾮负性: dist(Xi, Xj) >= 0 ;
同⼀性:dist(xi, xj) = 0。当且仅当 Xi = Xj ;
对称性: dist(xi, xj) = dist(xj , xi);
直递性: dist(xi, xj) <= dist(xi, xk) + dist(xk, xj)
直递性常被直接称为“三⻆不等式”。
2 常⻅的距离公式
2.1 欧式距离(Euclidean Distance):
欧⽒距离是最容易直观理解的距离度量⽅法,我们⼩学、初中和⾼中接触到的两个点在空间中的距离⼀般都是指欧⽒距离。
举例:
X=[[1,1],[2,2],[3,3],[4,4]];
经计算得[1,1]到其他三个点距离为:
d = 1.4142 2.8284 4.2426
2.2 曼哈顿距离(Manhattan Distance):
在曼哈顿街区要从⼀个⼗字路⼝开⻋到另⼀个⼗字路⼝,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。
举例:
X=[[1,1],[2,2],[3,3],[4,4]];
经计算得[1,1]到其他三个点距离为:
d = 2 4 6
2.3 切⽐雪夫距离 (Chebyshev Distance):
国际象棋中,国王可以直⾏、横⾏、斜⾏,所以国王⾛⼀步可以移动到相邻8个⽅格中的任意⼀个。国王从格⼦(x1,y1)⾛到格⼦(x2,y2)最少需要多少步?这个距离就叫切⽐雪夫距离。
举例:
X=[[1,1],[2,2],[3,3],[4,4]];
经计算得[1,1]到其他三个点距离为:
d = 1 2 3
2.4 闵可夫斯基距离(Minkowski Distance):
闵⽒距离不是⼀种距离,⽽是⼀组距离的定义,是对多个距离度量公式的概括性的表述。
两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:
其中p是⼀个变参数:
当p=1时,就是曼哈顿距离;
当p=2时,就是欧⽒距离;
当p→∞时,就是切⽐雪夫距离。
根据p的不同,闵⽒距离可以表示某⼀类/种的距离。
⼩结:
1 闵⽒距离、曼哈顿距离、欧⽒距离和切⽐雪夫距离,都存在明显的缺点:
e.g:⼆维样本(身⾼[单位:cm],体重[单位:kg]),现有三个样本:a(180,50),b(190,50),c(180,60)。
a与b的闵⽒距离(⽆论是曼哈顿距离、欧⽒距离或切⽐雪夫距离)等于a与c的闵⽒距离。但实际上身⾼的10cm并不能和体重的10kg划等号。
2 闵⽒距离的缺点:
(1)将各个分量的量纲(scale),也就是“单位”相同的看待了;
(2)未考虑各个分量的分布(期望,⽅差等)可能是不同的。
【拓展】其他距离公式
1 标准化欧⽒距离 (Standardized EuclideanDistance):
标准化欧⽒距离是针对欧⽒距离的缺点⽽作的⼀种改进。
思路:既然数据各维分量的分布不⼀样,那先将各个分量都“标准化”到均值、⽅差相等。
S 表示各个维度的标准差
如果将⽅差的倒数看成⼀个权重,也可称之为加权欧⽒距离(Weighted Euclidean distance)。
举例:
X=[[1,1],[2,2],[3,3],[4,4]];(假设两个分量的标准差分别为0.5和1)
经计算得:
d = 2.2361 4.4721 6.7082
2 余弦距离(Cosine Distance)
⼏何中,夹⻆余弦可⽤来衡量两个向量⽅向的差异;机器学习中,借⽤这⼀概念来衡量样本向量之间的差异。
⼆维空间中向量A(x1,y1)与向量B(x2,y2)的夹⻆余弦公式:
两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹⻆余弦为:
即:
夹⻆余弦取值范围为[-1,1]。余弦越⼤表示两个向量的夹⻆越⼩,余弦越⼩表示两向量的夹⻆越⼤。当两个向量的⽅向重合时余弦取最⼤值1,当两个向量的⽅向完全相反余弦取最⼩值-1。
举例:
X=[[1,1],[1,2],[2,5],[1,-4]
经计算得:
d = 0.9487 0.9191 -0.5145
3 汉明距离(Hamming Distance)【了解】:
两个等⻓字符串s1与s2的汉明距离为:将其中⼀个变为另外⼀个,所需要作的最⼩字符替换次数。
例如:
The Hamming distance between "1011101" and "1001001" is 2.
The Hamming distance between "2143896" and "2233796" is 3.
The Hamming distance between "toned" and "roses" is 3.
随堂练习:
求下列字符串的汉明距离:
1011101与 1001001
2143896与 2233796
irie与 rise
汉明重量:是字符串相对于同样⻓度的零字符串的汉明距离,也就是说,它是字符串中⾮零的元素个数:对于⼆进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。
应⽤:汉明重量分析在包括信息论、编码理论、密码学等领域都有应⽤。⽐如在信息编码过程中,为了增强容错性,应使得编码间的最⼩汉明距离尽可能⼤。但是,如果要⽐较两个不同⻓度的字符串,不仅要进⾏替换,⽽且要进⾏插⼊与删除的运算,在这种场合下,通常使⽤更加复杂的编辑距离等算法。
举例:
X=[[0,1,1],[1,1,2],[1,5,2]]
注:以下计算⽅式中,把2个向量之间的汉明距离定义为2个向量不同的分量所占的百分⽐。
经计算得:
d = 0.6667 1.0000 0.3333
4 杰卡德距离(Jaccard Distance)【了解】:
杰卡德相似系数(Jaccard similarity coefficient):两个集合A和B的交集元素在A,B的并集中所占的⽐例,称为两个集合的杰卡德相似系数,⽤符号J(A,B)表示:
杰卡德距离(Jaccard Distance):与杰卡德相似系数相反,⽤两个集合中不同元素占所有元素的⽐例来衡量两个集合的区分度:
举例:
X=[[1,1,0],[1,-1,0],[-1,1,0]]
注:以下计算中,把杰卡德距离定义为不同的维度的个数占“⾮全零维度”的⽐例
经计算得:
d = 0.5000 0.5000 1.0000
5 ⻢⽒距离(Mahalanobis Distance)【了解】
下图有两个正态分布图,它们的均值分别为a和b,但⽅差不⼀样,则图中的A点离哪个总体更近?或者说A有更⼤的概率属于谁?显然,A离左边的更近,A属于左边总体的概率更⼤,尽管A与a的欧式距离远⼀些。这就是⻢⽒距离的直观解释。
⻢⽒距离是基于样本分布的⼀种距离。
⻢⽒距离是由印度统计学家⻢哈拉诺⽐斯提出的,表示数据的协⽅差距离。它是⼀种有效的计算两个位置样本集的相似度的⽅法。
与欧式距离不同的是,它考虑到各种特性之间的联系,即独⽴于测量尺度。
⻢⽒距离定义:设总体G为m维总体(考察m个指标),均值向量为μ=(μ1,μ2,… ...,μm,)` ,协⽅差阵为
∑=(σij),
则样本X=(X1,X2,… …,Xm,)`与总体G的⻢⽒距离定义为:
⻢⽒距离也可以定义为两个服从同⼀分布并且其协⽅差矩阵为∑的随机变量的差异程度:如果协⽅差矩阵为单位矩阵,⻢⽒距离就简化为欧式距离;如果协⽅差矩阵为对⻆矩阵,则其也可称为正规化的欧式距离。
⻢⽒距离特性:
1.量纲⽆关,排除变量之间的相关性的⼲扰;
2.⻢⽒距离的计算是建⽴在总体样本的基础上的,如果拿同样的两个样本,放⼊两个不同的总体中,最后计算得出的两
个样本间的⻢⽒距离通常是不相同的,除⾮这两个总体的协⽅差矩阵碰巧相同;
3 .计算⻢⽒距离过程中,要求总体样本数⼤于样本的维数,否则得到的总体样本协⽅差矩阵逆矩阵不存在,这种情况
下,⽤欧式距离计算即可。
4.还有⼀种情况,满⾜了条件总体样本数⼤于样本的维数,但是协⽅差矩阵的逆矩阵仍然不存在,⽐如三个样本点
(3,4),(5,6),(7,8),这种情况是因为这三个样本在其所处的⼆维空间平⾯内共线。这种情况下,也采⽤
欧式距离计算。
欧式距离&⻢⽒距离:
举例:
已知有两个类G1和G2,⽐如G1是设备A⽣产的产品,G2是设备B⽣产的同类产品。设备A的产品质量⾼(如考察指标为耐磨度X),其平均耐磨度μ1=80,反映设备精度的⽅差σ 2 (1)=0.25;设备B的产品质量稍差,其平均耐磨损度μ2=75,反映设备精度的⽅差σ 2 (2)=4.
今有⼀产品G0,测的耐磨损度X0=78,试判断该产品是哪⼀台设备⽣产的?
直观地看,X0与μ1(设备A)的绝对距离近些,按距离最近的原则,是否应把该产品判断设备A⽣产的?
考虑⼀种相对于分散性的距离,记X0与G1,G2的相对距离为d1,d2,则:
因为d2=1.5 < d1=4,按这种距离准则,应判断X0为设备B⽣产的。
设备B⽣产的产品质量较分散,出现X0为78的可能性较⼤;⽽设备A⽣产的产品质量较集中,出现X0为78的可能性较⼩。
这种相对于分散性的距离判断就是⻢⽒距离。
“连续属性”和“离散属性”的距离计算
我们常将属性划分为"连续属性" (continuous attribute)和"离散属性" (categorical attribute),前者在定义域上有⽆穷多个可能的取值,后者在定义域上是有限个取值.
若属性值之间存在序关系,则可以将其转化为连续值,例如:身⾼属性“⾼”“中等”“矮”,可转化为{1, 0.5, 0}。
闵可夫斯基距离可以⽤于有序属性。
若属性值之间不存在序关系,则通常将其转化为向量的形式,例如:性别属性“男”“⼥”,可转化为{(1,0),(0,1)}。
⼩结
1 距离公式的基本性质:⾮负性、统⼀性、对称性、直递性【了解】
2 常⻅距离公式
2.1 欧式距离(Euclidean Distance)【知道】:
通过距离平⽅值进⾏计算
2.曼哈顿距离(Manhattan Distance)【知道】:
通过距离的绝对值进⾏计算
3.切⽐雪夫距离 (Chebyshev Distance)【知道】:
维度的最⼤值进⾏计算
4.闵可夫斯基距离(Minkowski Distance)【知道】:
当p=1时,就是曼哈顿距离;
当p=2时,就是欧⽒距离;
当p→∞时,就是切⽐雪夫距离。
3 属性【知道】
连续属性
离散属性
存在序关系,可以将其转化为连续值
不存在序关系,通常将其转化为向量的形式