jika diamati matriks data dan adalah variabel laten maka
Di mana adalah rata-rata dari data yang diamati, dan adalah kesalahan Gaussian / noise dalam data, dan disebut subruang utama.
Pertanyaan saya adalah ketika PCA biasa digunakan kita akan mendapatkan satu set ortonormal vektor eigen yang berikut benar
Tetapi dalam PPCA, bukan vektor ortonormal atau eigen. Jadi bagaimana saya bisa mendapatkan komponen utama dari ?
Mengikuti insting saya, saya mencari ppca di MATLAB, tempat saya menemukan baris ini:
Pada konvergensi, kolom W merentang subruang, tetapi tidak ortonormal. ppca memperoleh koefisien ortonormal, koefisien, untuk komponen dengan ortogonisasi W.
Saya memodifikasi kode ppca sedikit untuk mendapatkan W , berlari dan setelah orthogonalization aku mendapatkan P dari W .
Mengapa orthogonalization ini memberikan vektor eigen, di mana sebagian besar varian akan terlihat?
Saya berasumsi, ortogonalisasi memberi saya satu set vektor ortogonal / ortonormal yang membentang subruang utama, tetapi mengapa matriks hasil ortogonalisasi ini sama dengan eigenmatrix (saya tahu bahwa eigenmatrix di pca juga ortonormal)? Dapatkah saya menganggap subruang utama hanya direntang oleh satu set vektor ortonormal yang unik? Dalam hal ini, kedua hasil akan selalu bertepatan.
sumber
Jawaban:
Ini adalah pertanyaan yang sangat bagus.
Probabilistic PCA (PPCA) adalah model variabel laten berikut mana adalah satu pengamatan dan adalah laten vektor variabel; biasanya . Perhatikan bahwa ini berbeda dari analisis faktor hanya dalam satu detail kecil: struktur kovarians galat di PPCA adalah dan di FA merupakan matriks diagonal sewenang-wenang .
Tipping & Bishop, 1999, Analisis Komponen Utama Probabilistik membuktikan teorema berikut: solusi kemungkinan maksimum untuk PPCA dapat diperoleh secara analitis dan diberikan oleh (Persamaan 7): mana adalah matriks dari arah utama utama (vektor eigen dari matriks kovarians), adalah matriks diagonal dari nilai eigen yang sesuai, juga diberikan oleh rumus eksplisit, dan adalah matriks rotasi berubah-ubah (sesuai dengan rotasi dalam ruang laten).
TheWML
ppca()
algoritma mengimplementasikan fungsi harapan-maksimisasi untuk menyesuaikan model, tetapi kita tahu bahwa itu harus konvergen ke seperti yang diberikan di atas.Pertanyaan Anda adalah: bagaimana cara mendapatkan jika Anda tahu .Uq WML
Jawabannya adalah Anda cukup menggunakan dekomposisi nilai singular dari . Rumus di atas sudah dalam bentuk matriks ortogonal kali matriks diagonal kali matriks ortogonal, sehingga memberikan SVD, dan karena unik, Anda akan mendapatkan sebagai vektor tunggal kiri dari .WML Uq WML
Itulah
ppca()
fungsi yang dilakukan Matlab di baris 305:Tidak! Ada jumlah tak terbatas dari basis ortogonal yang mencakup ruang bagian utama yang sama. Jika Anda menerapkan beberapa proses sewenang-wenang ke Anda tidak dijamin untuk mendapatkan . Tetapi jika Anda menggunakan SVD atau sesuatu yang setara, maka itu akan berhasil.WML Uq
sumber