近似大型对称矩阵的最高3个特征值和特征向量的快速方法

Fast methods for approximating the highest 3 eigenvalues and eigenvectors of a large symmetric matrix

本文关键字:特征值 特征 向量 方法 3个 大型 对称      更新时间:2023-10-16

我正在编写代码来计算n Matrix,n = 500,000的非常大的n的经典多维缩放(缩写为MDS)。

在MDS的一个步骤中,我需要计算n矩阵n的最高三个特征值及其相应的特征向量。该矩阵称为B矩阵。我只需要这三个特征向量和特征值。计算大型矩阵的特征向量和特征值的常见方法需要很长时间,而且我不需要非常准确的答案,因此我正在寻求估计对向量和特征值的估计。

一些参数:

  1. B矩阵是对称的,真实的,相当密集的
  2. 理论上B的特征值分解应始终产生实数。
  3. 我不需要完全精确的估计,只是一个快速的估计。我需要在几个小时内完成。
  4. 我在python和c
  5. 中写

我的问题:是否有快速的方法来估计如此大的B矩阵的三个最高特征向量和特征值?

我的进度:我找到了一种近似矩阵的最高特征值的方法,但是我不知道我是否可以将其推广到最高三个。我还发现了这篇论文于1996年写的,但是我很难阅读它。

g。Golub和C.F Van Loan Matrix Computations在第9章中的第2个指出,兰斯佐斯算法是一个选择(除了矩阵理想情况下应该稀疏 - 它显然也适用于非Sparse的算法)

https://en.wikipedia.org/wiki/lanczos_algorithm

您可以获得B的最高特征向量,然后使用该特征向量将数据转换为B'。然后弹出B'的第一列并获取B'',以便您可以获得B''的最高特征向量:足以组成B的合理的第二高特征向量。然后是第三个。

关于速度:您可以随机对该巨大数据集进行随机对N项目的数据集。如果您只得到三个维度,我希望您还可以摆脱大多数数据,以获取特征向量的概述。您可以称其为"选举民意调查"。我无法帮助您测量错误率,但是我将尝试几次对1K项目进行采样,看看结果是否或多或少相同。

现在您可以获得几个"民意调查"的平均值来构建"预测"。

在此线程中查看建议

C

中最大的特征值(以及相应的特征向量)

所建议的您可以使用具有C 接口的Arpack软件包。