Saya memiliki dataset yang perlahan berubah, dan saya harus melacak vektor eigen / nilai eigen dari matriks kovariansnya.
Saya sudah menggunakan scipy.linalg.eigh
, tapi terlalu mahal, dan tidak menggunakan fakta bahwa saya sudah memiliki dekomposisi yang hanya sedikit salah.
Adakah yang bisa menyarankan pendekatan yang lebih baik untuk menangani masalah ini?
linear-algebra
optimization
python
eigenvalues
Yaroslav Bulatov
sumber
sumber
Jawaban:
Pendekatan naif adalah dengan menggunakan solusi nilai eigen dari matriks sebagai tebakan awal eigensolver iteratif untuk matriks . Anda mungkin menggunakan QR jika Anda membutuhkan spektrum penuh, atau metode daya sebaliknya. Ini bukan pendekatan yang sepenuhnya kuat, namun, karena nilai eigen dari suatu matriks tidak selalu mendekati matriks yang hampir berdekatan (1) , terutama jika kondisi buruknya (2) .A ( t + δ t )A(t) A(t+δt)
Metode pelacakan ruang bagian tampaknya lebih berguna (3) . Kutipan dari (4) :
Saya juga harus menyebutkan bahwa solusi untuk matriks simetris, seperti apa yang harus Anda pecahkan dengan penggunaannya
scipy.linalg.eigh
, agak murah. Jika Anda hanya tertarik pada beberapa nilai eigen, Anda mungkin menemukan peningkatan kecepatan dalam metode Anda juga. Metode Arnoldi sering digunakan dalam situasi seperti itu.sumber
Ada teknik khusus untuk memperbarui eigen-dekomposisi dari matriks kovarian yang bergantung waktu. Diberikan dekomposisi nilai eigen "sebelum" (katakan pada waktu awal ), algoritma rekursif ini menurunkan kompleksitas pembaruan spektrum dari (pada dasarnya biaya komposisi eigend baru) ke mana adalah ukuran matriks Anda dan adalah pangkat pembaruan Anda.O ( N 3 ) O ( k N 2 ) N kt0 O(N3) O(kN2) N k
Berikut adalah beberapa referensi yang relevan:
Eucendecomposition Adaptive Matriks Kovarian Data Berdasarkan Perturbasi Orde Pertama (Champagne, IEEE TSP 42 (10) 1994)
Rekursif memperbarui dekomposisi nilai eigen dari matriks kovarians (Yu, IEEE TSP, 39 (5) 1991)
Analisis Komponen Utama Online dalam Dimensi Tinggi: Algoritma mana yang harus Dipilih? (Cardot dan Degras)
Algoritma Yang Stabil Dan Cepat Untuk Memperbarui Dekomposisi Nilai Singular (Gu dan Eisenstadt, 1994)
sumber