繁体   English   中英

Python - 如何找到两个向量之间的相关性?

[英]Python - How to find a correlation between two vectors?

给定两个向量XY ,我必须找到它们的相关性,即它们的线性依赖性/独立性。 两个向量具有相同的维度。 结果应该是[-1.0 .. 1.0]的浮点数。

例:

X=[-1, 2,    0]
Y=[ 4, 2, -0.3]

y = cor(X,Y)使得y属于[-1.0 .. 1.0]

它应该是一个涉及列表理解的简单构造。 不允许使用外部库。

更新:好的,如果点积足够,那么这是我的解决方案:

nX = 1/(sum([x*x for x in X]) ** 0.5)
nY = 1/(sum([y*y for y in Y]) ** 0.5)
cor = sum([(x*nX)*(y*nY)  for x,y in zip(X,Y) ])

对?

由于范围应该是[-1, 1]我认为Pearson Correlation可以满足您的需要。

点积也可以工作,但你必须在计算之前对矢量进行标准化,并且如果你还有负值,你可以得到-1,1范围。否则你会得到0,1

对我来说听起来像点产品

求解两个向量之间角度余弦的等式,它始终在[-1,1]范围内,你就可以得到你想要的。

它等于点积除以两个矢量的大小。

不要假设,因为公式在代数上是正确的,它在代码中的直接实现将起作用。 一些相关定义可能存在数值问题。

请参见如何准确计算相关性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM