【问题标题】:Sorting Vectors based on their correlation根据相关性对向量进行排序
【发布时间】:2013-03-25 01:07:21
【问题描述】:

这个问题https://math.stackexchange.com/questions/338646/sort-vectors-according-to-their-distance-between-them 是关于根据向量之间的距离对向量进行排序。那么根据向量之间的相关系数对向量进行排序呢?我想做的是根据向量在数据集中的“重要性”对向量进行排序。如果我们有 N 个向量,那么排序将是 V1,V2,...,Vn,其中 V1 和 Vn 的相关性低于其他向量。 V1 和 V2 彼此之间最相关......等等。我正在考虑使用皮尔逊系数作为相关系数。这可能吗?或者您对这个问题有任何想法吗?有没有一个好的算法可以做到这一点,或者我们应该找到每对向量之间的相关系数,然后找到两个相关性较低的向量,然后对两个相关性较低的向量之间的所有向量进行排序。

感谢阅读和回答:)

【问题讨论】:

标签: sorting correlation


【解决方案1】:

Pearsons 可以。通常的点积、Manhattan 等也是如此。

当然,你意识到这需要一个矩阵

向量 1 与自身完全相关,因此其值为 1.0。 (想象一下在矩阵的对角线上。)然后下一个值 (1, 2) 显示向量 1 与向量 2 的相关性,以此类推直到 (1, n)。

矩阵是对称的,因为 (i, j) = (j, i)。

对于n 向量,需要计算nxn 相关性。

【讨论】:

  • 非常感谢。是的,这是正确的,但这将花费太多时间。正如你所说的复杂性是O(n ^ 2)。我想知道是否有任何其他算法可用于此目的。
  • 不,这需要多长时间。你有多少个向量?没有其他算法。如果您担心时间,请将其并行化。让多个线程为您进行计算。我猜 N 个线程可以在 O(N) 内完成。
  • 是的,你是对的。实际上我不知道向量的数量。我正在考虑在 Som 算法中使用这种方法来用数据集中的“最重要”向量对其进行初始化。实际上我不确定基于距离的排序和基于相关系数的排序有什么区别。我不知道在 SOM 的情况下哪个更好。如果我想根据距离进行 osrt,我发现 coVenx 船体具有 o(n* log n) 复杂性......你有什么想法吗?
  • 距离只是众多相关性指标中的一种。 “更好”不是非黑即白的考虑。您应该编写代码,以便插入不同的度量并评估它们给您的结果。 “更好”取决于您和您的问题。一种尺寸并不适合所有人。
  • 好吧,我想改用皮尔逊系数,因为我觉得在 SOM 情况下它更好,但需要更多时间。无论如何,我会尝试他们两个。谢谢很多:)
猜你喜欢
  • 2011-01-23
  • 1970-01-01
  • 2017-04-05
  • 2012-07-05
  • 2020-11-22
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
相关资源
最近更新 更多