matlab实现余弦相似度_机器学习基础:相似度和距离度量究竟是什么

相似度度量和距离度量在整个机器学习领域都是非常基础的概念,数据科学家 Gonzalo Ferreiro Volpi 近日通过浅显易懂的推荐系统示例介绍了这些概念以及它们的计算方式。

选自 Medium,作者:Gonzalo Ferreiro Volpi,机器之心编译,参与:Panda。

在推荐系统中,我们经常谈到「相似度度量」这一概念。为什么?因为在推荐系统中,基于内容的过滤算法和协同过滤算法都使用了某种特定的相似度度量来确定两个用户或商品的向量之间的相等程度。所以总的来说,相似度度量不仅仅是向量之间的距离。

注:我的所有工作都可在我的 GitHub 页面查看:https://github.com/gonzaferreiro,其中当然也包括本文内容的代码库以及有关推荐系统的更多内容。

在任意类型的算法中,最常见的相似度度量是向量之间夹角的余弦,即余弦相似度。设 A 为用户的电影评分 A 列表,B 为用户的电影评分 B 列表,那么它们之间的相似度可以这样计算:

618e7b226ee25e29ffdacb245430f190.png

从数学上看,余弦相似度衡量的是投射到一个多维空间中的两个向量之间的夹角的余弦。当在多维空间中绘制余弦相似度时,余弦相似度体现的是每个向量的方向关系(角度),而非幅度。如果你想要幅度,则应计算欧几里德距离。

余弦相似度很有优势,因为即使两个相似的文件由于大小而在欧几里德距离上相距甚远(比如文档中出现很多次的某个词或多次观看过同一部电影的某用户),它们之间也可能具有更小的夹角。夹角越小,则相似度越高。

如下例所示,来自 www.machinelearningplus.com

6e6c5858c986ba2b9c53800082949d29.png

上图统计了 sachin、dhoni、cricket 这三个词在所示的三个文档中的出现次数。据此,我们可以绘出这三个向量的图,从而轻松地看出衡量这些文档的余弦和欧几里德距离的差异:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB中,可以使用余弦相似度来衡量两个向量之间的相似程度。余弦相似度计算公式为两个向量的内积除以两个向量的模的乘积。你可以使用MATLAB中的`dot`函数计算两个向量的内积,使用`norm`函数计算向量的模。以下是一个MATLAB代码示例,演示如何计算两个向量的余弦相似度: ``` X = [1, 2, 3]; Y = [2, 3, 4]; cos_sim = dot(X, Y) / (norm(X) * norm(Y)); ``` 在这个例子中,向量X和向量Y的余弦相似度计算为`cos_sim`。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [相似度量 | MATLAB实现相似度计算(对数似然相似度、Jaccard相似度余弦相似度)](https://blog.csdn.net/kjm13182345320/article/details/125645460)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [余弦相似度计算matlab代码-cosineSimilarity:计算隔间之间的余弦相似度](https://download.csdn.net/download/weixin_38518376/19666958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值