机器学习中余弦相似度比对的方法和代码
时间: 2024-09-07 22:01:59 浏览: 70
在机器学习中,余弦相似度(Cosine Similarity)通常用于衡量两个非零向量之间的角度,常被用来评估文本、图像等数据集中的相似度或关联度。它的值范围从-1到1之间,其中1表示完全相同,0表示没有关系,而-1则表示方向相反。
计算余弦相似度的基本公式是:
\[ \text{cosine_similarity}(A, B) = \frac{A \cdot B}{\|A\| \|B\|} \]
这里 \( A \cdot B \) 表示向量A和B的点积(内积),\( \|A\| \) 和 \( \|B\| \) 分别是向量A和B的模长(长度)。
以下是一个简单的Python代码示例,使用scikit-learn库中的`cosine_similarity`函数:
```python
from sklearn.metrics.pairwise import cosine_similarity
from scipy.spatial.distance import cosine
# 假设我们有两组二维向量
vector_a = [1, 2, 3]
vector_b = [4, 5, 6]
# 使用numpy创建矩阵进行批量比较
import numpy as np
vectors = np.array([vector_a, vector_b])
# 单个向量间的余弦相似度
similarity_single = cosine(vector_a, vector_b)
# 整个向量集合的余弦相似度矩阵
similarity_matrix = cosine_similarity(vectors)
print("单个向量间余弦相似度:", similarity_single)
print("向量集合相似度矩阵:\n", similarity_matrix)
```
在这个例子中,如果你有大量向量要比较,`cosine_similarity`函数会返回一个距离矩阵,每一行和每一列对应一对向量的相似度。
阅读全文