常见的相似性度量方法

这篇具有很好参考价值的文章主要介绍了常见的相似性度量方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有如下几种计算相似性方法:

点积相似度

X ⋅ Y = ∣ X ∣ ∣ Y ∣ c o s θ = ∑ i = 1 n x i ∗ y i \begin{aligned} X \cdot Y &= |X||Y|cos\theta \\ &= \sum_{i=1}^n x_i * y_i \end{aligned} XY=X∣∣Ycosθ=i=1nxiyi

向量内积的结果是没有界限的,解决办法就是先归一化再相乘,就是下面的余弦相似度了。

余弦相似度

X ⋅ Y = ∑ i = 1 n x i ∗ y i ∑ i = 1 n ( x i ) 2 ∗ ∑ i = 1 n ( x i ) 2 X \cdot Y = \frac{\sum_{i=1}^n x_i * y_i}{\sqrt{\sum_{i=1}^n (x_i)^2} * {\sum_{i=1}^n (x_i)^2}} XY=i=1n(xi)2 i=1n(xi)2i=1nxiyi

余弦相似度衡量两个向量在方向上的相似性,并不关注两个向量的实际长度,即对绝对数据不敏感。

示例

用户对内容评分,5分制。A和B两个用户对两个商品的评分分别为A:(1,2)和B:(4,5)。使用余弦相似度得出的结果是0.98,看起来两者极为相似,但从评分上看A不喜欢这两个东西,而B比较喜欢。造成这个现象的原因就在于,余弦相似度没法衡量每个维数值的差异,对数值的不敏感导致了结果的误差。
需要修正这种不合理性,就出现了调整余弦相似度,即所有维度上的数值都减去一个均值。
比如A和B对两部电影评分的均值分别是(1+4)/2=2.5,(2+5)/2=3.5。那么调整后为A和B的评分分别是:(-1.5,-1.5)和(1.5,2.5),再用余弦相似度计算,得到-0.98,相似度为负值,显然更加符合现实。

注:为什么是在所有用户对同一物品的打分上求均值,每个人打分标准不一,对所有用户求均值,等于是所有用户的打分映射到了同一空间内。上述是在计算两个用户的相似度,以此类推计算两个物品的相似度,就要计算所有物品的均值了。

修正的余弦相似度可以说就是对余弦相似度进行归一化处理的算法,公式如下:
s ( A , B ) = ∑ i ∈ I ( R A , i − R i ˉ ) ( R B , i − R i ˉ ) ∑ i ∈ I ( R A , i − R i ˉ ) 2 ∑ i ∈ I ( R B , i − R i ˉ ) 2 s(A, B)=\frac{\sum_{i \in I}\left(R_{A, i}-\bar{R_i}\right)\left(R_{B, i}-\bar{R_i}\right)}{\sqrt{\sum_{i \in I}\left(R_{A, i}-\bar{R_i}\right)^2} \sqrt{\sum_{i \in I}\left(R_{B, i}-\bar{R_i}\right)^2}} s(A,B)=iI(RA,iRiˉ)2 iI(RB,iRiˉ)2 iI(RA,iRiˉ)(RB,iRiˉ)
R A , i R_{A,i} RA,i 表示用户A在商品i上的打分, R i ˉ \bar{R_i} Riˉ表示商品i在所有用户上的打分均值。

皮尔逊相关系数

Pearson 相关系数是用来检测两个连续型变量之间线性相关的程度,它解决了余弦相似度会收到向量平移影响的问题。取值范围为 [−1,1],正值表示正相关,负值表示负相关,绝对值越大表示线性相关程度越高:
ρ x , y = cov ⁡ ( x , y ) σ x σ y = E [ ( x − μ x , y − μ y ) ] σ x σ y = ∑ i ( x i − x ˉ ) ( y i − y ˉ ) ∑ i ( x i − x ˉ ) 2 ∑ i ( y i − y ˉ ) 2 \begin{aligned} \rho_{\boldsymbol{x}, \boldsymbol{y}} &= \frac{\operatorname{cov}(\boldsymbol{x}, \boldsymbol{y})}{\sigma_{\boldsymbol{x}} \sigma_{\boldsymbol{y}}} \\ &= \frac{E\left[\left(\boldsymbol{x}-\mu_{\boldsymbol{x}}, \boldsymbol{y}-\mu_{\boldsymbol{y}}\right)\right]}{\sigma_{\boldsymbol{x}} \sigma_{\boldsymbol{y}}} \\ &= \frac{\sum_i\left(x_i-\bar{x}\right)\left(y_i-\bar{y}\right)}{\sqrt{\sum_i\left(x_i-\bar{x}\right)^2} \sqrt{\sum_i\left(y_i-\bar{y}\right)^2}} \end{aligned} ρx,y=σxσycov(x,y)=σxσyE[(xμx,yμy)]=i(xixˉ)2 i(yiyˉ)2 i(xixˉ)(yiyˉ)
如果把 x ′ = x − x ˉ , y ′ = y − y ˉ x'=x-\bar{x}, y'=y-\bar{y} x=xxˉ,y=yyˉ ,那么皮尔逊系数计算的就是 x ′ 和 y ′ x' 和 y' xy 的余弦相似度。文章来源地址https://www.toymoban.com/news/detail-624023.html


参考

  • 点积相似度、余弦相似度、欧几里得相似度
  • 常用的特征选择方法之 Pearson 相关系数
  • 图片向量相似检索服务(2)——四种基本距离计算原理
    • 这篇博客倒是很简洁,适合速读
  • 点积相似度、余弦相似度、欧几里得相似度
  • 相似性和距离度量 (Similarity & Distance Measurement)

到了这里,关于常见的相似性度量方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据科学中使用的17 种相似性和相异性度量之欧氏距离

    目录 1简介 2距离函数 2.1 L2范数(欧氏距离) 在数据科学中, 相似性度量 是一种衡量数据样本如何相互关联或相互接近的方法。另一方面, 相异性度量 是告诉数据对象有多少是不同的。此外,当相似的数据样本被分组到一个集群中时,这些术语通常用于聚类。所有其他数据

    2024年02月04日
    浏览(31)
  • 计算机视觉中的多样性: 相似性度量的实践与应用

    计算机视觉(Computer Vision)是人工智能领域的一个重要分支,主要关注于从图像和视频中抽取和理解有意义的信息。在计算机视觉任务中,相似性度量是一个重要的概念,它用于衡量两个特征向量之间的相似程度。随着计算机视觉技术的不断发展,我们需要更加准确、高效地衡

    2024年02月20日
    浏览(38)
  • 大脑与机器学习的相似性:探索人工智能的未来

    人工智能(Artificial Intelligence, AI)是一门研究如何让计算机模拟人类智能的学科。人类智能包括学习、理解语言、认知、推理、计划、视觉、语音等多种能力。人工智能的目标是让计算机具备这些能力,以便在各种应用场景中与人类相互作用。 机器学习(Machine Learning, ML)是

    2024年01月19日
    浏览(47)
  • 2023年第十五届华中杯赛题B 题 小学数学应用题相似性度量及难度评估

    B  题 小学数学应用题相似性度量及难度评估 某 MOOC 在线教育平台希望能够进行个性化教学,实现用户自主学习。在用户学习 时,系统从题库中随机抽取若干道与例题同步的随堂测试题,记录、分析学生的学习和答 题信息,并且课后会自动生成作业题(或练习题)。此外,系统

    2024年02月02日
    浏览(38)
  • 无监督学习的集成方法:相似性矩阵的聚类

    在机器学习中,术语Ensemble指的是并行组合多个模型,这个想法是利用群体的智慧,在给出的最终答案上形成更好的共识。 这种类型的方法已经在监督学习领域得到了广泛的研究和应用,特别是在分类问题上,像RandomForest这样非常成功的算法。通常应用一些投票/加权系统,将

    2024年02月05日
    浏览(35)
  • 【2023华中杯数学建模】B 题 小学数学应用题相似性度量及难度评估详细建模方案及实现代码

    更新时间:2023-5-1 14:00 B 题 小学数学应用题相似性度量及难度评估 某 MOOC 在线教育平台希望能够进行个性化教学,实现用户自主学习。在用户学习时,系统从题库中随机抽取若干道与例题同步的随堂测试题,记录、分析学生的学习和答题信息,并且课后会自动生成作业题(或

    2024年02月06日
    浏览(42)
  • OpenCV书签 #结构相似性SSIM算法的原理与图片相似性实验

    结构相似性(Structural Similarity,简称SSIM算法) ,主要用于检测两张相同尺寸的图像的相似度、或者检测图像的失真程度,是一种衡量两幅图像相似度的指标。 给定两个图像 x 和 y,两张图像的结构相似性可按照以下方式求出: 结构相似性的范围为 -1 到 1。当两张图像一模一

    2024年01月24日
    浏览(37)
  • 如何计算2个矩阵的相似性?

    如下图所示,如何计算功能连接和结构连接的矩阵相似性? 原理 :把结构矩阵或者功能连接矩阵的上三角矩阵提取出来,然后利用squeeze把上三角矩阵转化为一列,然后计算相关性。 皮尔逊相关系数公式实际上就是在计算夹角余弦之前将两个向量减去各个样本的平均值,达到

    2024年02月13日
    浏览(40)
  • 图像质量评估算法SSIM(结构相似性)

    由于最近在阅读图像超分辨率方面的RCAN论文,里面涉及到了两幅图像之间的相似性,所以就引入了这个指标,并最终使用pyhton进行实现。结构相似性,是一种衡量两幅图像相似度的指标。该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Image and Video Eng

    2024年01月18日
    浏览(83)
  • 安全研究 # 二进制代码相似性检测综述

    本文参考: [1]方磊,武泽慧,魏强.二进制代码相似性检测技术综述[J].计算机科学,2021,48(05):1-8. (信息工程大学数学工程与先进计算国家重点实验室, 国家重点研发课题,北大核心) 代码相似性检测常用于 代码预测 、 知识产权保护 和 漏洞搜索 等领域,可分为 源代码相似性检测

    2024年02月02日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包