author: 贺晓松
在机器学习或是数据挖掘的算法当中,经常需要比较不同样本特征向量的相似性,进而作为下一步的判断依据。比方说最近数据挖掘领域比较火的精准营销、定点广告投放、用户画像等。都需要计算不同数据样例特征向量的相似性,然后根据相似性或分类或排序等。因此,向量的相似性度量可以说是数据挖掘或机器学习领域的一个基础性工具。
需要用到相似度度量的方法类型分为:样本点的相似性度量、类与类之间的相似性度量、变量之间的相似性度量。
用数量化的方法描述事物之间的相似程度,一个事物通常需要多个维度来刻画。假设一群样本点需要用p个维度去描述,则每个样本点可以看成是p维空间中的一个点。因此,很自然地想到可以用距离来度量样本点之间的相似程度。假定p维空间中的两个点,,则x,y间的距离度量最常用的是闵氏距离:
当q=1,2,或q趋于无穷时可分别得到:
(1)曼哈顿距离(绝对值距离):
从名字就可以猜出这种距离的计算方法了。想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为城市街区距离(City Block distance)。
(2)欧氏距离:
在闵氏距离中,最常用的是欧式距离。它的主要优点是当坐标轴进行正交旋转时,欧式距离是保持不变的。另外一定要采用相同量纲的变量,然后再计算距离。同时尽可能避免维度间的想关心,相关性会造成信息重叠,会片面强调某些变量的重要性。
(3)切比雪夫距离:
国际象棋玩过么?国王走一步能够移动到相邻的8个方格中的任意一个。那么国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?自己走走试试。你会发现最少步数总是max( | x2-x1 | , | y2-y1 | ) 步 。有一种类似的一种距离度量方法叫切比雪夫距离。
(4)夹角余弦距离
几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。
(1)在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:
(2) 两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦
类似的,对于两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。
即:
夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。
(5) 马氏距离
有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:
而其中向量Xi与Xj之间的马氏距离定义为:
若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了: