相似性度量:给定数值的对象就可以看作一个n 维坐标系下的点,并通过点与点之间的距离来度量。

例如:

向量v1 = (01, 小明, 男, 175, 北京大学, 软件与微电子学院,软件工程)

向量v2 = (02, 小红, 女,  165, 中山大学,医学院,临床医学)

个人理解:比较小明和小红的相似度,即对象1和对象2的相似度。可以将其转换为向量v1和向量v2,通过计算其距离,得出相似性。



范数

向量的范数可以简单、形象地理解为
1、向量的长度                                或
2、向量到坐标系原点的距离           或
3、相应空间内的两点之间的距离


L1范数: ||x||为x向量各个元素绝对值之和
L2 范数: ||x||为x向量各个元素平方和的开方。L2 范数又称Euclidean 范数或者Frobenius 范数。 
LP 范数: ||x||为x向量各个元素绝对值p次方和的1/P 次方
L∞范数: ||x||为x向量各个元素绝对值最大的那个元素,如下:



各类距离以及其Python实现

1、欧式距离:即下图求AB间距离。(L2范数)


数学公式为:


以下是Python实现代码。

# coding = utf8
from numpy import *

#欧氏距离
vector1 = mat([1, 2, 3])
vector2 = mat([4, 5, 6])
print (sqrt((vector1-vector2)*((vector1-vector2).T)))

输出




曼哈顿距离(L1范数)

曼哈顿距离也称为城市街区距离

假定下图是一座城市,A到B的距离称为曼哈顿距离。


二维平面计算公式为


n维向量计算公式为


Python代码如下

# coding = utf8
from numpy import *

#曼哈顿距离
vector1 = mat([1, 2, 3])
vector2 = mat([4, 5, 6])
print (sum(abs(vector1-vector2)))

输出结果

9



国际象棋中,国王一步能移动到相邻的8个方格中的其中一个。

切比雪夫距离:国王从A(x1, y1)走到B(x2, y2)的最小步数(L∞范数)


公式为


# coding = utf8
from numpy import *

#切比雪夫距离
vector1 = mat([1, 2, 3])
vector2 = mat([4, 7, 5])
print (abs(vector1-vector2).max())

输出结果为

5


夹角余弦

机器学习中借助夹角余弦来衡量样本向量之间的差异

即求cosθ


公式为



Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐