常用的相似度度量距离有:欧几里得距离、余弦相似度距离、曼哈顿距离、闵可夫斯基距离、切比雪夫距离、Jaccard相似系数、皮尔森相关系数。
构造样本数据
import numpy as npnp.random.seed(0)x = np.random.random((100,))y = np.random.random((100,))
1、欧几里得距离
(代码太长往左滑哦)
# 欧几里得距离from sklearn.metrics import pairwise_distancesfrom sklearn.metrics.pairwise import euclidean_distancesdistance = pairwise_distances([x], [y], metric='euclidean')distance = euclidean_distances([x], [y])print(distance)# 4.16281038
2、余弦相似度
(代码太长往左滑哦)
# 余弦距离from sklearn.metrics.pairwise import cosine_distancesdistance = pairwise_distances([x], [y], metric='cosine')distance = cosine_distances([x], [y])print(distance)# 0.02536815
3、曼哈顿距离
(代码太长往左滑哦)
# 曼哈顿距离distance = pairwise_distances([x], [y], metric='manhattan')print(distance)# 34.25817459
4、闵可夫斯基距离
(代码太长往左滑哦)
# 闵可夫斯基距离distance = pairwise_distances([x], [y], metric='minkowski')print(distance)# 4.16281038
5、切比雪夫距离
(代码太长往左滑哦)
# 切比雪夫距离distance = pairwise_distances([x], [y], metric='chebyshev')print(distance)# 0.8608848
6、Jaccard相似系数
(代码太长往左滑哦)
# jaccard相似系数distance = pairwise_distances([x], [y], metric='jaccard')print(distance)# 0
7、皮尔森相关系数
(代码太长往左滑哦)
# 皮尔森相关系数distance = pairwise_distances([x], [y], metric='correlation')distance = np.corrcoef(x, y)print(distance)# -0.06610711
推荐阅读
自我介绍
hr常问的几道面试题Python2与Python3的区别
Python字符串前面加‘r’的作用
多分类面试题
决策树常见面试题
特征向量的缺失值处理有哪些方法?
加小编微信(备注:机器学习)
拉你入“机器学习交流群”
更多面试题尽在“BAT笔试面试”公众号