余弦相似度判断
时间: 2025-05-29 21:41:34 浏览: 16
### 使用余弦相似度进行判断和计算
#### 什么是余弦相似度?
余弦相似度用于衡量两个非零向量之间的夹角余弦值,其取值范围为[-1, 1]。当值接近1时,表示两个向量高度相似;当值接近-1时,表示两个向量完全相反;而值接近0则表明两者几乎正交或无关[^2]。
#### 如何计算余弦相似度?
假设存在两个n维向量 \( \vec{A} = [a_1, a_2, ..., a_n] \) 和 \( \vec{B} = [b_1, b_2, ..., b_n] \),它们的余弦相似度可以通过以下公式计算:
\[
cos(\theta) = \frac{\sum_{i=1}^{n}(a_i \cdot b_i)}{\sqrt{\sum_{i=1}^{n}{a_i^2}} \cdot \sqrt{\sum_{i=1}^{n}{b_i^2}}}
\]
其中:
- 分子部分代表两向量的点积;
- 分母部分分别代表两向量各自的模长乘积。
以下是基于Python实现的一个简单示例代码,展示如何使用`numpy`库来高效地完成这一操作:
```python
import numpy as np
def calculate_cosine_similarity(vector_a, vector_b):
dot_product = np.dot(vector_a, vector_b) # 向量点乘
norm_a = np.linalg.norm(vector_a) # 向量A的模
norm_b = np.linalg.norm(vector_b) # 向量B的模
if norm_a == 0 or norm_b == 0: # 防止除以零的情况发生
return 0
cosine_similarity = dot_product / (norm_a * norm_b)
return cosine_similarity
# 测试数据
vector_A = np.array([1, 2, 3])
vector_B = np.array([4, 5, 6])
result = calculate_cosine_similarity(vector_A, vector_B)
print(f"Cosine Similarity between {vector_A} and {vector_B}: {result}")
```
此段代码定义了一个名为 `calculate_cosine_similarity` 的函数,它接受两个参数——即待比较的两个向量,并返回它们间的余弦相似度得分[^4]。
#### 应用场景举例
在实际应用中,比如推荐系统里常用到的协同过滤技术,就是借助用户或者物品的行为特征构建相应的向量模型,再运用上述提到的方法去评估不同对象之间潜在的相关程度。例如,对于电影评分矩阵而言,每一行可以看作是一个特定观众偏好模式下的表达形式,则通过对比任意两位观影者所对应的数据序列即可得知他们口味是否存在重叠倾向[^2]。
阅读全文
相关推荐

















