相似性度量——机器学习
·
相似性度量:给定数值的对象就可以看作一个n 维坐标系下的点,并通过点与点之间的距离来度量。
例如:
向量v1 = (01, 小明, 男, 175, 北京大学, 软件与微电子学院,软件工程)
向量v2 = (02, 小红, 女, 165, 中山大学,医学院,临床医学)
个人理解:比较小明和小红的相似度,即对象1和对象2的相似度。可以将其转换为向量v1和向量v2,通过计算其距离,得出相似性。
范数
向量的范数可以简单、形象地理解为
1、向量的长度 或
2、向量到坐标系原点的距离 或
3、相应空间内的两点之间的距离
L1范数: ||x||为x向量各个元素绝对值之和。
L2 范数: ||x||为x向量各个元素平方和的开方。L2 范数又称Euclidean 范数或者Frobenius 范数。
L2 范数: ||x||为x向量各个元素平方和的开方。L2 范数又称Euclidean 范数或者Frobenius 范数。
LP 范数: ||x||为x向量各个元素绝对值p次方和的1/P 次方。
L∞范数: ||x||为x向量各个元素绝对值最大的那个元素,如下:
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θ

公式为

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


所有评论(0)