相似性和相异性的度量

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

相似度和相异度简介

相似度(Similarity):

  • 两个数据对象相似程度的数值度量;
  • 对象越相似,值越高;
  • 通常在[0, 1]区间取值。

有时候相似度的取值范围可能在[-1, 1]之间,这时正负号包含了一定信息,这种情况下可以保留其符号,而非强行转换到[0, 1]之间。

相异度(Dissimilarity):

  • 两个对象不同(相异)程度的数值度量;
  • 对象越相似,值越低;
  • 通常,最小相异度为0;
  • 上界不确定。

对象越类似,他们的相异度就越低。距离常常用来表示特定类型的相异度。

相异度可以在[0, 1]中取值,但也常常在 [ 0 , ∞ ] [0, \infty] [0,]中取值。而将相异度的值映射到[0, 1]时往往会损失一些信息,甚至尺度会发生一些变化,这个过程往往需要结合算法以及具体场景来斟酌判断。

邻近度(Proximity):相似度和相异度的统称。

相似度和相异度之间是可以相互转换的。可以用d=1-s来从相似度数据中得到相异度,这时相异度越接近1,代表数据间距离越远;相异度越接近0,代表数据间距离越近。还可以直接对相似度取负,一般来说,单调减函数都可以用来完成相似度和相异度间的转换。

数据对象之间的相异度

距离常常用于度量数据对象的相异度。下面介绍一些常用的距离公式。

欧几里得距离 ( Euclidean distance) d如下公式定义:

d ( x , y ) = ∑ k = 1 n ( x k − y k ) 2 d(x, y)=\sqrt{\sum_{k=1}^{n}(x_k-y_k)^2} d(x,y)=k=1n(xkyk)2

其中n是维度,而 x k {x_k} xk y k {y_k} yk分别是x和y的第k个属性(分量):

相似度,算法,线性代数,机器学习

闵可夫斯基距离 ( Minkowski distance ):

d ( x , y ) = ( ∑ k = 1 n ∣ x k − y k ∣ r ) 1 / r d(x, y)=(\sum_{k=1}^{n}{|x_k-y_k|}^r)^{1/r} d(x,y)=(k=1nxkykr)1/r

Minkowski距离是欧氏距离的推广,其中r是参数:

  • r=1时成为街区距离(或曼哈顿距离, L 1 L_1 L1范数);
  • r=2时为Euclidean距离(或 L 2 L_2 L2范数);
  • r → ∞ \to\infty 时成为切比雪夫距离(或 L m a x L_{max} Lmax范数, L ∞ L_{\infty} L 范数):

d ( x , y ) = lim ⁡ r → ∞ ( ∑ k = 1 n ∣ x k − y k ∣ r ) 1 / r = max ⁡ k ( ∣ x k − y k ∣ ) d(x, y)=\lim_{r\to\infty}(\sum_{k=1}^n{|x_k-y_k|}^r)^{1/r}=\max_k(|x_k-y_k|) d(x,y)=rlim(k=1nxkykr)1/r=kmax(xkyk)

Mahalanobis距离(马氏距离) 可以看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题。**某些属性之间相关就使用Mahalanobis距离。**计算Mahalanobis距离的代价较大,但对于属性相关的对象来说是值得的,如果属性相对来说不相关,只是具有不同的值域,则只需要对变量进行标准化就足够了。

Mahalanobis距离公式定义如下:

m a h a l a n o b i s ( x , y ) = ( x − y ) T Σ − 1 ( x − y ) mahalanobis(x, y)=(x-y)^{T}\Sigma^{-1}{(x-y)} mahalanobis(x,y)=(xy)TΣ1(xy)

  • 其中, Σ − 1 \Sigma^{-1} Σ1是数据协方差矩阵的逆;
  • 协方差矩阵 Σ \Sigma Σ是这样的矩阵,它的第i行第j列元素是第i个和第j个属性的协方差。

距离具有一些常见性质。如果 d ( x , y ) d(x, y) d(x,y)是两个点x和y之间的距离,则如下性质成立:

  1. 非负性
    • 对于所有x和y, d ( x , y ) ≥ 0 d(x, y)\geq{0} d(x,y)0;
    • 仅当x=y时, d ( x , y ) = 0 d(x, y)=0 d(x,y)=0;
  2. 对称性
    • 对于所有x和y, d ( x , y ) = d ( y , x ) d(x, y)=d(y, x) d(x,y)=d(y,x);
  3. 三角不等式
    • 对于是所有x,y和z, d ( x , z ) ≤ d ( x , y ) + d ( y , z ) d(x, z)\leq{d(x, y)+d(y, z)} d(x,z)d(x,y)+d(y,z)

满足以上三个性质的测度成为度量 ( metric )

非度量的相异度:集合差 基于集合论中定义的两个集合差的概念举例。设有两个集合A和B,A-B是不在B中的 A 中元素的集合。例如,如果 A={1, 2, 3, 4}, 而 B={2, 3, 4},则A-B={1},而 B − A = ∅ B-A=\emptyset BA=,即空集。我们可以将两个集合A和B之间的距离定义为 d(A, B)=size(A - B),其中 size 是一个函数,它返回集合元素的个数。该距离测度是大于或等于零的整数值,但不满足非负性的第二部分,也不满足对称性,同时还不满足三角不等式。然而,如果将相异度修改为 d(A, B)= size(A - B) + size(B-A),则这些性质都可以成立。

非度量的相异度:时间 这里给出一个更常见的例子,其中相异性测度并非度量,但依然是有用的。定义时间之间的距离测度如下:

d ( t 1 , t 2 ) = { t 2 − t 1 if  t 1 ≤ t 2 24 + ( t 2 − t 1 ) if  t 1 ≥ t 2 d(t_1, t_2)= \left\{\begin{array}{ll} t_2-t_1 & \textrm{if $t_1 \leq{t_2}$}\\ 24+(t_2-t_1) & \textrm{if $t_1\geq{t_2}$}\\ \end{array} \right. d(t1,t2)={t2t124+(t2t1)if t1t2if t1t2

例如,d(1PM,2PM)=1小时,而d(2PM,1PM)= 23 小时。这种定义是有意义的,例如,在回答如下问题时就体现了这种定义的意义:“如果一个事件在每天下午 1 点发生,现在是下午 2点,那么我们还需要等待多长时间才能等到该事件再度发生?”

数据对象之间的相似度

对于相似度,三角不等式(或类似的性质)通常不成立,但是对称性和非负性通常成立。如通 s ( x , y ) s(x, y) s(x,y)时数据点x和y之间的相似度,则相似度具有如下典型性质:

  1. 仅当x=y时, s ( x , y ) = 1 ( 0 ≤ s ≤ 1 ) s(x, y)=1 (0 \leq{s}\leq{1}) s(x,y)=1(0s1)
  2. 对于所有x和y, s ( x , y ) = s ( y , x ) s(x, y)=s(y, x) s(x,y)=s(y,x) (对称性)

对于相似度,没有与三角不等式对应的一般性质。然而,有时可以将相似度简单的变换成一种度量距离。

考虑一个实验,实验中要求人们对屏幕上快速闪过的一小组字符进行分类。该实验的**混淆矩阵 (confusion matrix)**记录每个字符被分类为自己的次数和被分类为另一个字符的次数。例如,假定“0”出现了 200 次,它被分类为“0”160 次,而被分类为“o”40次。类似地,“o”出现 200 次并且分类为“o”170 次,但是分类为“0”只有 30 次。如果取这些计数作为两个字符之间相似性的度量,则得到一种相似性度量,但这种相似性度量不是对称的。在这种情况下,通过选取 s ′ ( x , y ) = s ′ ( y , x ) = ( s ( x , y ) + s ( y , x ) ) / 2 s'(x, y)=s'(y,x)=(s(x, y)+ s(y,x))/2 s(x,y)=s(y,x)=(s(x,y)+s(y,x))/2,相似性度量可以转换成对称的,其中s’是新的相似性度量。

邻近性度量

二元数据的相似性度量

两个仅包含二元属性的对象之间的相似性度量也称为相似系数 ( similarity coefficient ), 并且通常在0和1之间取值,1表示两个对象完全相似,0表明对象完全不相似。

设x和y是两个对象,都由n个二元属性组成,这样的两个对象(即两个二元向量)的比较可生成以下四个量(频率):

  • f 00 f_{00} f00:x取0并且y取0的属性个数;
  • f 01 f_{01} f01:x取0并且y取1的属性个数;
  • f 10 f_{10} f10:x取1并且y取0的属性个数;
  • f 11 f_{11} f11:x取1并且y取1的属性个数。

简单匹配系数 ( Simple Matching Coefficient, SMC ): 一种常用的相似性系数是简单匹配系数,定义如下:

S M C = 值匹配的属性个数 属性个数 = f 11 + f 00 f 01 + f 10 + f 11 + f 00 SMC=\frac{值匹配的属性个数}{属性个数}=\frac{f_{11}+f_{00}}{f_{01}+f_{10}+f_{11}+f_{00}} SMC=属性个数值匹配的属性个数=f01+f10+f11+f00f11+f00

简单匹配系数适合作为仅包含二元属性(属性仅有两个取值,例如0和1)的数据之间的相似性度量。

Jaccard系数 (Jaccard Coefficient) 用来处理仅包含非对称的二元属性的对象,由如下等式定义:

J = 匹配的个数 不涉及 0 − 0 匹配的属性个数 = f 11 f 01 + f 10 + f 11 J=\frac{匹配的个数}{不涉及0-0匹配的属性个数}=\frac{f_{11}}{f_{01}+f_{10}+f_{11}} J=不涉及00匹配的属性个数匹配的个数=f01+f10+f11f11

相似度,算法,线性代数,机器学习

余弦相似度

设x和y时两个向量,则:

c o s ( x , y ) = x ⋅ y ∥ x ∥ ∥ y ∥ cos(x, y)=\frac{x·y}{\|x\|\|y\|} cos(x,y)=x∥∥yxy

"·"表示向量点积:

x ⋅ y = ∑ k = 1 n x k y k x·y=\sum_{k=1}^{n}x_ky_k xy=k=1nxkyk

∥ x ∥ \|x\| x是向量x的长度

∥ x ∥ = ∑ k = 1 n x k 2 = x ⋅ x \|x\|=\sqrt{\sum_{k=1}^n{x_k^2}}=\sqrt{x·x} x=k=1nxk2 =xx

c o s ( x , y ) = x ⋅ y ∥ x ∥ ∥ y ∥ = x ′ ⋅ y ′ cos(x, y)=\frac{x·y}{\|x\|\|y\|}=x'·y' cos(x,y)=x∥∥yxy=xy

其中, x ′ = x / ∥ x ∥ , y ′ = y / ∥ y ∥ x'=x/\|x\|, y'=y/\|y\| x=x/∥x,y=y/∥y是长度为1的向量。

相似度,算法,线性代数,机器学习

例:

相似度,算法,线性代数,机器学习

广义Jaccard系数

广义Jaccard系数可以用于文档数据,并在二元属性情况下归约为Jaccard系数。广义Jaccard系数又称为Tanimoto系数,该系数用EJ表示,由下式定义:

E J ( x , y ) = x ⋅ y ∥ x ∥ 2 + ∥ y ∥ 2 − x ⋅ y EJ(x, y)=\frac{x·y}{{\|x\|}^2+{\|y\|}^2-x·y} EJ(x,y)=x2+y2xyxy

相关性

两个具有二元变量或连续变量的数据对象之间的相关性是对象属性之间线性联系的度量。两个数据对象x和y之间的皮尔森相关 (Pearson’s correlation) 系数由下式定义:

c o r r ( x , y ) = c o v a r i a n c e ( x , y ) s t a n d a r d _ d e v i a t i o n ( x ) × s t a n d a r d _ d e v i a t i o n ( y ) = S x y S x S y corr(x, y)=\frac{covariance(x, y)}{standard\_deviation(x)×standard\_deviation(y)}=\frac{S_{xy}}{S_xS_y} corr(x,y)=standard_deviation(x)×standard_deviation(y)covariance(x,y)=SxSySxy

其中,统计学记号和定义:

协方差:

c o v a r i a n c e ( x , y ) = S x y = 1 n − 1 ∑ k = 1 n ( x k − x ˉ ) ( y k − y ˉ ) covariance(x, y)=S_{xy}=\frac{1}{n-1}\sum_{k=1}^{n}{(x_k-\bar{x})(y_k-\bar{y})} covariance(x,y)=Sxy=n11k=1n(xkxˉ)(ykyˉ)

标准差:

s t a n d a r d _ d e v i a t i o n ( x ) = S x = 1 n − 1 ∑ k = 1 n ( x k − x ˉ ) 2 standard\_deviation(x)=S_x=\sqrt{\frac{1}{n-1}\sum_{k=1}^{n}{(x_k-\bar{x})^2}}\\ standard_deviation(x)=Sx=n11k=1n(xkxˉ)2
s t a n d a r d _ d e v i a t i o n ( y ) = S y = 1 n − 1 ∑ k = 1 n ( y k − y ˉ ) 2 standard\_deviation(y)=S_y=\sqrt{\frac{1}{n-1}\sum_{k=1}^{n}{(y_k-\bar{y})^2}}\\ standard_deviation(y)=Sy=n11k=1n(ykyˉ)2

均值:

x ˉ = 1 n ∑ k = 1 n x k y ˉ = 1 n ∑ k = 1 n y k \bar{x}=\frac{1}{n}\sum_{k=1}^{n}{x_k}\\ \\ \bar{y}=\frac{1}{n}\sum_{k=1}^{n}{y_k} xˉ=n1k=1nxkyˉ=n1k=1nyk

− 1 ≤ c o r r ( x , y ) ≤ 1 -1 \leq corr(x, y) \leq 1 1corr(x,y)1 c o r r ( x , y ) = 0 corr(x, y)=0 corr(x,y)=0 不相关, c o r r ( x , y ) = 1 ( − 1 ) corr(x, y)=1(-1) corr(x,y)=1(1) 正(负)相关。

相关系数即将x、y坐标向量各自平移到原点后的夹角余弦。这即解释了为何文档间求距离使用夹角余弦——因为这一物理量表征了文档去均值化后的随机向量间相关系数。

相关性的可视化

相似度,算法,线性代数,机器学习

相似度/距离计算方法总结

  • 闵可夫斯基距离Minkowski/欧氏距离:

d i s t ( X , Y ) = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p dist(X, Y)=(\sum_{i=1}^{n}{|x_i-y_i|}^p)^{\frac{1}{p}} dist(X,Y)=(i=1nxiyip)p1

  • 杰卡德相似系数 (Jaccard):

J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ J(A, B)=\frac{|A\cap{B}|}{|A\cup{B}|} J(A,B)=ABAB

  • 余弦相似度 (cosine similarity):

c o s ( θ ) = a T b ∣ a ∣ ⋅ ∣ b ∣ cos(\theta)=\frac{a^Tb}{|a|·|b|} cos(θ)=abaTb

  • Pearson相似系数:
    ρ X Y = c o v ( X , Y ) σ X σ Y = E [ ( X − μ X ) ( Y − μ Y ) ] σ X σ Y = ∑ i = 1 n ( X i − μ X ) ( Y i − μ Y ) ∑ i = 1 n ( X i − μ X ) 2 ∑ i = 1 n ( Y i − μ Y ) 2 \rho_{XY}=\frac{cov(X, Y)}{\sigma_X \sigma_Y}=\frac{E[(X-\mu_X) (Y-\mu_Y)]}{\sigma_X \sigma_Y}=\frac{\sum_{i=1}^{n}{(X_i-\mu_X)(Y_i-\mu_Y)}}{\sqrt{\sum_{i=1}^{n}{(X_i-\mu_X)^2}}\sqrt{\sum_{i=1}^{n}{(Y_i-\mu_Y)^2}}} ρXY=σXσYcov(X,Y)=σXσYE[(XμX)(YμY)]=i=1n(XiμX)2 i=1n(YiμY)2 i=1n(XiμX)(YiμY)

  • 相对熵(K-L距离):

D ( p ∥ q ) = ∑ x p ( x ) l o g p ( x ) q ( x ) = E p ( x ) l o g p ( x ) q ( x ) D(p\|q)=\sum_{x}{p(x)log{\frac{p(x)}{q(x)}}}=E_{p(x)}log{\frac{p(x)}{q(x)}} D(pq)=xp(x)logq(x)p(x)=Ep(x)logq(x)p(x)

  • Hellinger距离:

D α ( p ∥ q ) = 2 1 − α 2 ( 1 − ∫ p ( x ) 1 + α 2 q ( x ) 1 − α 2 d x ) D_{\alpha}(p\|q)=\frac{2}{1-\alpha^2}(1-\int{p(x)^{\frac{1+\alpha}{2}}q(x)^{\frac{1-\alpha}{2}}dx}) Dα(pq)=1α22(1p(x)21+αq(x)21αdx)文章来源地址https://www.toymoban.com/news/detail-728591.html

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

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

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

相关文章

  • 计算机视觉中的多样性: 相似性度量的实践与应用

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

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

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

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

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

    2024年02月06日
    浏览(55)
  • 图像检索技术研究:深度度量与深度散列在相似性学习中的应用比较与实践 - 使用Python与Jupyter环境

    引言 在计算机视觉领域,图像检索是一个长期存在并持续受到研究者关注的重要话题。随着大数据时代的到来,如何高效、准确地从海量数据中检索到相似的图像成为一个巨大的挑战。传统的检索方法在大数据环境下表现不佳,而深度学习技术的崛起为图像检索带来了新的机

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

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

    2024年01月24日
    浏览(42)
  • 图像质量评估算法SSIM(结构相似性)

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

    2024年01月18日
    浏览(96)
  • 基于直方图相似性的图像分类算法FPGA实现,包括tb测试文件和MATLAB辅助验证

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 MATLAB测试结果: FPGA测试结果: 上述仿真图中,红色XX表示图像读取完毕。因此输出XX。当图像输出完成之后,最下面的相似性指标 same1输出为11226,same2输出为67584.即图1和图

    2024年04月09日
    浏览(42)
  • 如何计算2个矩阵的相似性?

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

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

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

    2024年02月02日
    浏览(39)
  • 相似性搜索:第 7 部分--LSH 组合物

    Vyacheslav Efimov – Medium S 相似性搜索 是一个问题,给定一个查询,目标是在所有数据库文档中找到与其最相似的文档。         在数据科学中,相似性搜索经常出现在 NLP 领域、搜索引擎或推荐系统中,其中需要检索最相关的文档或项目以进行查询。有多种不同的方法可以

    2024年02月07日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包