几种相似度计算公式

本文介绍了推荐系统中常用的相似度计算方法,包括余弦相似度、调整后的余弦相似度和皮尔森相关系数。内容参考了Item-Based Collaborative Filtering Recommendation Algorithms论文,并指出在物品相似度计算中,皮尔森相关系数可能优于余弦相似度,而在用户相似度计算中,余弦相似度可能更适用。此外,还提到了Mahout库中对评分向量的归一化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考论文: Item-Based Collaborative Filtering Recommendation Algorithms

余弦相似度、改进的余弦相似度、皮尔森相似度,具体描述参考:http://blog.youkuaiyun.com/bornhe/article/details/7425642

Cosine Similarity:


Adjusted Cosine Similarity:

### 图像相似度计算公式算法 图像相似度的计算可以通过多种方法实现,这些方法大多基于向量空间模型或其他数学工具。以下是几种常见的图像相似度计算方式及其对应的公式: #### 1. 基于像素灰度差值的方法 该方法通过对两张图片的像素点逐一进行灰度值比较来评估其相似性。具体而言,对于给定的两张大小相同的图像 \( I_1 \) 和 \( I_2 \),可以定义如下公式: \[ S_{gray} = \frac{1}{N} \sum_{i=1}^{N} |I_1(i) - I_2(i)| \] 其中,\( N \) 表示总的像素数量,\( I_1(i) \) 和 \( I_2(i) \) 分别表示第 \( i \) 个像素在两张图像中的灰度值[^2]。 如果两幅图像尺寸不同,则需先将其调整至相同大小再执行上述操作。 #### 2. 使用欧几里得距离 (Euclidean Distance) 当将每张图像视为一个多维特征向量时,可利用欧氏距离衡量它们间的差异程度。设两个图像分别对应向量 \( V_1 \) 和 \( V_2 \),则有: \[ D_{euclid}(V_1,V_2)=\sqrt{\sum _{{k=1}}^{n}\left(V_{{1,k}}-V_{{2,k}}\right)^{2}} \] 这里 \( n \) 是维度数目,而较小的距离意味着更高的相似度[^1]。 #### 3. 利用颜色直方图匹配技术 此策略不依赖具体的像素位置关系而是关注整体色彩分布特性。假设我们已获得两副图各自的颜色直方图 H1,H2 ,那么一种可能的选择就是采用卡方统计检验作为测度标准之一: \[ d(H_1, H_2) = \frac{1}{2} \sum_i \frac{(H_1[i]-H_2[i])^2}{(H_1[i]+H_2[i])} \] 这种形式不仅易于理解还具备良好的鲁棒性和效率优势[^3]。 ```python import cv2 from sklearn.metrics import pairwise_distances def calculate_histogram_similarity(image_path1, image_path2): img1 = cv2.imread(image_path1) hist1 = cv2.calcHist([img1], [0], None, [256], [0, 256]) img2 = cv2.imread(image_path2) hist2 = cv2.calcHist([img2], [0], None, [256], [0, 256]) distance = pairwise_distances(hist1.reshape(1,-1), hist2.reshape(1,-1))[0][0] return distance ``` 以上展示了如何借助Python库OpenCV提取并处理彩色直方图数据进而求解两者间差距的过程实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值