余弦相似度和修正余弦相似度有什么区别,分别用matlab实现
时间: 2023-12-28 15:04:42 浏览: 60
余弦相似度和修正余弦相似度都是用于计算两个向量之间的相似度。
余弦相似度衡量的是两个向量方向的相似程度,即它们的夹角余弦值。其取值范围在[-1,1]之间,值越大表示相似度越高,值为1表示完全相似,值为-1表示完全不相似。余弦相似度的计算公式如下:
cosine_similarity = dot(a, b) / (norm(a) * norm(b))
其中,a和b是两个向量,dot(a,b)表示a和b的点积,norm(a)和norm(b)分别表示a和b的模长。
修正余弦相似度是在余弦相似度的基础上进行修正,考虑了两个向量在各个维度上的均值差异。其计算公式如下:
adjusted_cosine_similarity = dot(a - mean(a), b - mean(b)) / (norm(a - mean(a)) * norm(b - mean(b)))
其中,a和b是两个向量,mean(a)和mean(b)分别表示a和b在各个维度上的均值,dot(a,b)表示a和b的点积,norm(a)和norm(b)分别表示a和b的模长。
下面是用matlab实现余弦相似度和修正余弦相似度的代码:
```
% 余弦相似度
function cosine_similarity = cosineSim(a, b)
cosine_similarity = dot(a, b) / (norm(a) * norm(b));
end
% 修正余弦相似度
function adjusted_cosine_similarity = adjustedCosineSim(a, b)
a_mean = mean(a);
b_mean = mean(b);
adjusted_cosine_similarity = dot(a - a_mean, b - b_mean) / (norm(a - a_mean) * norm(b - b_mean));
end
```
其中,a和b都是列向量。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)