哪有做网站的定单,漳州本地网,成都设计院招聘,无安全警告的浏览器文章目录 前言一、距离度量1.1 欧几里得距离#xff08;Euclidean Distance#xff09;1.2 曼哈顿距离#xff08;Manhattan Distance#xff09;1.3 切比雪夫距离#xff08;Chebyshev Distance#xff09;1.4 闵可夫斯基距离#xff08;Minkowski Distance#xff09… 文章目录 前言一、距离度量1.1 欧几里得距离Euclidean Distance1.2 曼哈顿距离Manhattan Distance1.3 切比雪夫距离Chebyshev Distance1.4 闵可夫斯基距离Minkowski Distance1.5 余弦距离Cosine Distance代码演示总结 二、相似度度量2.1 余弦相似度Cosine Similarity2.2 皮尔逊相关系数Pearson Correlation Coefficient2.3 杰卡德相似系数Jaccard Similarity Coefficient2.4 汉明距离Hamming Distance2.5 相关距离Correlation Distance代码演示总结 前言
计算样本之间的相似度通常可以通过计算样本之间的距离来实现尽管这不是唯一的方法。距离度量和相似度度量是两个相关但不同的概念。距离度量通常用于表示样本之间的不相似程度而相似度度量则用于表示样本之间的相似程度。
一、距离度量
1.1 欧几里得距离Euclidean Distance
欧氏距离是两个点在 n 维空间中直线距离的度量。它是最常见的距离度量方法之一用于计算两个向量之间的距离。
1.2 曼哈顿距离Manhattan Distance
曼哈顿距离又称为城市街区距离是指两个点在 n 维空间中各个坐标轴上的距离之和。
1.3 切比雪夫距离Chebyshev Distance
切比雪夫距离又称为棋盘距离是指两个点在 n 维空间中各个坐标轴上的最大距离。
1.4 闵可夫斯基距离Minkowski Distance
闵可夫斯基距离是欧氏距离和曼哈顿距离的广义形式通过调整参数 可以得到不同的距离度量。
1.5 余弦距离Cosine Distance
通过计算两个样本点之间夹角的余弦值的补值来衡量相似度。
代码演示
import numpy as np
from sklearn.metrics.pairwise import euclidean_distances, manhattan_distances
from scipy.spatial.distance import chebyshev, minkowski, cosine# 示例向量
vector1 np.array([1.2, 2.3, 3.4, 4.5])
vector2 np.array([4.1, 5.2, 6.3, 7.4])# 欧几里得距离
euclidean_dist euclidean_distances([vector1], [vector2])
print(fEuclidean Distance: {euclidean_dist[0][0]})# 曼哈顿距离
manhattan_dist manhattan_distances([vector1], [vector2])
print(fManhattan Distance: {manhattan_dist[0][0]})# 切比雪夫距离
chebyshev_dist chebyshev(vector1, vector2)
print(fChebyshev Distance: {chebyshev_dist})# 闵可夫斯基距离p3
minkowski_dist minkowski(vector1, vector2, p3)
print(fMinkowski Distance (p3): {minkowski_dist})# 余弦相似度
cosine_dist cosine(vector1, vector2)
print(fCosine Distance: {cosine_dist})
总结
在距离度量的五种方法中欧几里得距离Euclidean Distance、曼哈顿距离Manhattan Distance、余弦距离 是最常用的三种。 欧几里得距离适用于低维和中维数据广泛用于各种机器学习算法。低维通常在1-10维之间中维在10—100之间 曼哈顿距离适用于高维数据尤其是特征独立时。高维100维 余弦距离适用于高维稀疏数据特别是文本数据和推荐系统。
二、相似度度量
2.1 余弦相似度Cosine Similarity
衡量两个向量的方向相似度而不关注它们的大小。
2.2 皮尔逊相关系数Pearson Correlation Coefficient
衡量两个变量之间的线性相关性。
2.3 杰卡德相似系数Jaccard Similarity Coefficient
衡量两个集合的交集与并集的比值常用于文本或集合相似度。
2.4 汉明距离Hamming Distance
计算两个样本在相同位置上不同元素的数量常用于二进制数据。
2.5 相关距离Correlation Distance
计算两个变量之间的相关性反映了两个向量在统计上的相似程度是皮尔逊相关系数的补数。
代码演示
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
from scipy.spatial.distance import correlation, jaccard, hamming
from scipy.stats import pearsonr# 示例向量
vector1 np.array([1.2, 2.3, 3.4, 4.5])
vector2 np.array([4.1, 5.2, 6.3, 7.4])# 1. 余弦相似度Cosine Similarity
cosine_sim cosine_similarity([vector1], [vector2])
print(fCosine Similarity: {cosine_sim[0][0]})# 2. 皮尔逊相关系数Pearson Correlation Coefficient
pearson_corr, _ pearsonr(vector1, vector2)
print(fPearson Correlation Coefficient: {pearson_corr})# 3. 杰卡德相似系数Jaccard Similarity Coefficient
# 将向量转为布尔型示例中使用大于2的值作为示例
vector1_bool vector1 2
vector2_bool vector2 2
jaccard_sim 1 - jaccard(vector1_bool, vector2_bool)
print(fJaccard Similarity Coefficient: {jaccard_sim})# 4. 汉明距离Hamming Distance
# 这里的计算汉明距离先计算不相似度再计算相似度
hamming_dist hamming(vector1_bool, vector2_bool)
print(fHamming Distance: {hamming_dist})
hamming_sim 1 - hamming_dist
print(fHamming Similarity: {hamming_sim})# 5. 相关距离Correlation Distance
# 这里的计算相关距离先计算不相似度再计算相似度
correlation_dist correlation(vector1, vector2)
correlation_sim 1 - correlation_dist
print(fCorrelation Similarity: {correlation_sim})
总结
在相似度度量的五种常见方法中余弦相似度Cosine Similarity 和 皮尔逊相关系数Pearson Correlation Coefficient 是最常用的两种。 余弦相似度适用于高维稀疏数据如文本数据和推荐系统。 皮尔逊相关系数适用于数值数据衡量线性相关性。