关于余弦相似性的取值范围为-1到1的归一化

Posted 不积跬步无以至千里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于余弦相似性的取值范围为-1到1的归一化相关的知识,希望对你有一定的参考价值。

对于余弦相似性(Cosine Similarity),其范围确实是介于-1到1之间。这是因为余弦相似性衡量的是两个向量之间的夹角,其值的符号表示向量之间的方向关系,而数值的大小表示它们的相似程度。

当两个向量的夹角为0度时,即完全重合,余弦相似性为1。当两个向量的夹角为90度时,即正交或无关,余弦相似性为0。当两个向量的夹角为180度时,即完全相反,余弦相似性为-1。

然而,在实际应用中,相似性度量通常被归一化到0到1的范围内,使其更直观和易于解释。这样可以使用更常见的相似度指标,如相关系数或欧几里德距离。因此,如果使用余弦相似性作为相似性度量,并将其归一化到0到1之间,则范围通常是0到1。

要将范围在-1到1之间的余弦相似性归一化到0到1之间,可以使用以下公式进行线性转换:

归一化相似性 = (余弦相似性 + 1) / 2

这个公式将余弦相似性的范围从-1到1映射到0到1之间。当余弦相似性为-1时,归一化相似性为0;当余弦相似性为1时,归一化相似性为1。

数据的归一化处理

我输入一些数据比如说,a,b,c,d……,经过归一化处理后得到一组数据,我用归一化后的这组数据进行计算得到x,y,z……,我怎样将x,y,z……,反归一化处理,他们的比例还能按照以前的计算吗?
谢谢!
那我该怎么办呢?

是的,把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。

归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。

1、(0,1)标准化:

这是最简单也是最容易想到的方法,通过遍历feature vector里的每一个数据,将Max和Min的记录下来,并通过Max-Min作为基数(即Min=0,Max=1)进行数据的归一化处理:

LaTex:{x_normalization=\\fracx-MinMax-Min

Python实现:

2、Z-score标准化:


这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,这里的关键在于复合标准正态分布,个人认为在一定程度上改变了特征的分布,关于使用经验上欢迎讨论,我对这种标准化不是非常地熟悉。

参考技术A   数据
归一化方法
有两种形式,一种是把数变为(0,1)之间的小数,一种是把有
量纲
表达式
变为无量纲表达式。
  1、把数变为(0,1)之间的小数
  主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到
数字信号处理
范畴之内。
  2、是把有量纲表达式变为无量纲表达式
  归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
参考技术B 那你就看看你的处理流程,你觉得是可能的吗?
至少我的感觉是,你归一化了,那么很多不同的数据可能会在归一化后得到相同的结果,那你肯定无法区分这些数据吧
----------------------------------------------------------
额。。我根本不知道你在做的什么,怎么知道该怎么办呢。。
笼统的来讲,如果你需要那些归一化之前的数据,就应该保留他们的一个副本啊
参考技术C 归一化以后,数据本身已经发生变化了,或者说被替代了,不可能有反归一化这个过程~~

以上是关于关于余弦相似性的取值范围为-1到1的归一化的主要内容,如果未能解决你的问题,请参考以下文章

连续型特征的归一化和离散特征的one-hot编码

归一化向量,使总和等于 1,同时满足下限

Matlab中可变范围[x,y]的归一化

关于用matlab进行向量归一化的问题

分类变量的归一化

数据的归一化处理