我有一个变化缓慢的数据集,我需要跟踪其协方差矩阵的特征向量/特征值。
我一直在使用scipy.linalg.eigh
,但是它太贵了,并且它没有使用我已经进行了分解的事实,该分解只是稍微不正确。
谁能建议一种更好的方法来解决此问题?
我有一个变化缓慢的数据集,我需要跟踪其协方差矩阵的特征向量/特征值。
我一直在使用scipy.linalg.eigh
,但是它太贵了,并且它没有使用我已经进行了分解的事实,该分解只是稍微不正确。
谁能建议一种更好的方法来解决此问题?
Answers:
天真的方法是将矩阵的特征值解用作矩阵的迭代本征求解器的初始猜测。如果需要全频谱,则可以使用QR,否则可以使用功率方法。但是,这并不是一种完全可靠的方法,因为矩阵的特征值不一定接近于几乎相邻的矩阵(1),尤其是条件差的矩阵(2)时。甲(吨+ δ 吨)
极端(最大或最小)特征对(特征值和特征向量)的迭代计算可以追溯到1966年[72]。汤普森在1980年提出了一种LMS型自适应特征向量估计算法,该算法对应于样本协方差矩阵的最小特征值,并提供了Pisarenko谐波估计器对角度/频率组合的自适应跟踪算法[14]。Sarkar等。[73]使用共轭梯度算法来跟踪极端特征向量的变化,该特征向量对应于缓慢变化的信号的协方差矩阵的最小特征值,并证明了其收敛速度比汤普森的LMS型算法快得多。这些方法仅用于限制应用的单个极值和特征向量的跟踪,但后来它们被扩展为本征子空间跟踪和更新方法。1990年,Comon和Golub [6]提出了Lanczos方法来跟踪极值奇异值和奇异矢量,这是最初设计用于确定某些大而稀疏的对称本征问题的通用方法。 [74]。
[6]:Comon,P.和Golub,GH(1990)。跟踪信号处理中的一些极端奇异值和矢量。在IEEE处理中(第1327–1343页)。
[14]:宾夕法尼亚州汤普森(1980)。自适应频谱分析技术
[72]:Bradbury,WW,&Fletcher,R.(1966)。解决本征问题的新迭代方法。数值数学,9(9),259-266。
[73]:萨卡(Tarkar),TK,迪亚纳特(Dianat),萨恩(Shen),H。,和布鲁尔(Brule),JD(1986)。共轭梯度法的自适应光谱估计。IEEE声学,语音和信号处理事务,34(2),272–284。
[74]:Golub,GH,和Van Load,CF(1989)。矩阵计算(第二版)。巴尔的摩:约翰·霍普金斯大学出版社。
我还应该提到对称矩阵的解决方案(例如,使用时必须解决的问题)scipy.linalg.eigh
有些便宜。如果您只对几个特征值感兴趣,那么您可能还会发现方法的速度提高。在这种情况下经常使用Arnoldi方法。
存在用于更新时间相关协方差矩阵的本征分解的特殊技术。给定“先验”特征值分解(例如在某个初始时间),这些递归算法将频谱更新的复杂度从(基本上是新特征分解的成本)降低到,其中是矩阵的大小,是更新的等级。O(N 3)O(k N 2)N k
这里有一些相关的参考资料:
基于一阶扰动的数据协方差矩阵的自适应本征分解 (Champagne,IEEE TSP 42(10)1994)
递归更新协方差矩阵的特征值分解(Yu,IEEE TSP,39(5)1991)
高维在线主成分分析:选择哪种算法?(卡多和德格拉斯)
更新奇异值分解的稳定且快速的算法(Gu和Eisenstadt,1994年)