Saya memiliki matriks X , yang mengandung N saya = 20 sampel dalam ruang D = 100- dimensi. Saya sekarang ingin kode analisis komponen utama saya sendiri (PCA) di Matlab. Saya merendahkan X ke X 0 terlebih dahulu.
Saya membaca dari kode seseorang bahwa dalam skenario seperti itu di mana kita memiliki dimensi lebih dari pengamatan, kita tidak lagi eigen-menguraikan matriks kovarians . Sebagai gantinya, kami eigen-decompose 1 . Mengapa ini benar?
Matriks kovarians normal adalah ukuran , masing-masing elemen memberi tahu kita kovarians antara dua dimensi. Bagi saya, 1 bahkan tidak memiliki dimensi yang benar! Hal iniN×Nmatriks, sehingga apa yang akan memberitahu kita? Kovarian antara dua pengamatan ?!
X'X
danXX'
(serta svd dariX
danX'
). Apa yang disebut "memuat" dalam satu kasus akan disebut "skor pc" dalam kasus lain dan sebaliknya. Karena keduanya hanya koordinat ( lihat, misalnya ) dan sumbu, "dimensi utama" adalah sama.n<p
itu membutuhkan lebih sedikit RAM dan lebih sedikit waktu untuk teruraiXX'
karena ukurannya lebih kecil.XX'
ke PC. Bisakah Anda menunjukkan dengan singkat bagaimana caranya? Mengingat bahwa PC hanyalah vektor eigen dari matriks kovarians, saya berusaha untuk beralih dari eigenXX'
ke eigen dari matriks kovariansX'X
, tetapi gagal.Jawaban:
Analisis komponen utama (PCA) dapat diimplementasikan melalui komposisi eigend dari salah satu matriks ini. Ini hanya dua cara berbeda untuk menghitung hal yang sama.
sumber