Python 在threashold上方的相关矩阵中查找成对的启发式方法

Python 在threashold上方的相关矩阵中查找成对的启发式方法,python,algorithm,distance-matrix,Python,Algorithm,Distance Matrix,我有大小为m的N向量v。我可以这样计算两个向量之间的相关性: d = correlation(v1,v2) 我想为每个向量v1找到一对向量v2,其中相关值大于0.9。 我无法计算相关矩阵,因为我有大量向量(N>300万)。 朴素算法如下所示: 向量中v1的: 对于矢量中的v2: 如果相关性(v1,v2)>0.9: 产量(v1,v2) 打破 你有更好的算法建议吗?我想我可以使用启发式算法,因为我不想要最大的相关性值,而只想要其中一个相关性在阈值之间。首先相关性是对称的,所以你可以将迭代次数减半

我有大小为mN向量v。我可以这样计算两个向量之间的相关性:

d = correlation(v1,v2)
我想为每个向量v1找到一对向量v2,其中相关值大于0.9。 我无法计算相关矩阵,因为我有大量向量(N>300万)。
朴素算法如下所示:

向量中v1的
:
对于矢量中的v2:
如果相关性(v1,v2)>0.9:
产量(v1,v2)
打破

你有更好的算法建议吗?我想我可以使用启发式算法,因为我不想要最大的相关性值,而只想要其中一个相关性在阈值之间。

首先相关性是对称的,所以你可以将迭代次数减半,但要确保v1\u索引>v2\u索引。最终目标是什么?你需要找到所有高于0.9的对吗?或者,如果你想要一个近似值,你有没有想过什么指标就足够了(可能在精度/召回率方面)?你也许可以通过做一个实验来建立某种启发式/记忆化的方法。你如何计算相关性?向量是什么数据类型?你用的是外部软件包吗?我只想为每个向量找到一个配偶。不是所有的:(v1,vx),(v2,vy),(v3,vz)。。。我的向量是整数:v1={1,5,6,4,2,5…}。我使用scipy.cdist或pandas.Series.corr()或我的客户的相关距离m的数量级是多少?我可以有m=300万个向量。每个载体对应于人类基因组中的一个位置。