[英]Python - How to find a correlation between two vectors?
给定两个向量X和Y ,我必须找到它们的相关性,即它们的线性依赖性/独立性。 两个向量具有相同的维度。 结果应该是[-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
不要假设,因为公式在代数上是正确的,它在代码中的直接实现将起作用。 一些相关定义可能存在数值问题。
请参见如何准确计算相关性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.