Apakah PCA masih dilakukan melalui komposisi eigend dari matriks kovarians ketika dimensi lebih besar dari jumlah pengamatan?

10

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.20×100XN=20D=100XX0

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 1X0 . Mengapa ini benar?1N1X0X0T

Matriks kovarians normal adalah ukuran , masing-masing elemen memberi tahu kita kovarians antara dua dimensi. Bagi saya, 1D×D bahkan tidak memiliki dimensi yang benar! Hal iniN×Nmatriks, sehingga apa yang akan memberitahu kita? Kovarian antara dua pengamatan ?!1N1X0X0TN×N

Sibbs Gambling
sumber
Jawaban untuk pertanyaan Anda adalah dalam keadaan bahwa - karena mengikuti dari posing tugas Anda - Anda tidak perlu matriks kovarian kolom untuk dirinya sendiri. Anda hanya menginginkannya sebagai jalur untuk mendapatkan PC. Baik? Tetapi hasil PCA yang sama dapat diperoleh melalui eigen dari X'Xdan XX'(serta svd dari Xdan X'). 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.
ttnphns
1
(lanjt.) Jika demikian dan Anda bebas memilih mana yang akan diuraikan - adalah bijaksana untuk menguraikan mana yang harus dilakukan lebih cepat / lebih efisien. Ketika n<pitu membutuhkan lebih sedikit RAM dan lebih sedikit waktu untuk terurai XX'karena ukurannya lebih kecil.
ttnphns
@ttnphns Penjelasan bagus. Saya mengerti maksudnya sekarang. Namun, saya masih memiliki masalah untuk beralih dari eigen XX'ke PC. Bisakah Anda menunjukkan dengan singkat bagaimana caranya? Mengingat bahwa PC hanyalah vektor eigen dari matriks kovarians, saya berusaha untuk beralih dari eigen XX'ke eigen dari matriks kovarians X'X, tetapi gagal.
Sibbs Gambling
1
Saya harus pergi. Mungkin @amoeba (yang jauh lebih gesit dalam aljabar daripada saya) atau pembaca lain akan segera mencari di sini dan membantu Anda. Bersulang.
ttnphns
1
@ttnphns: Selesai :)
amoeba

Jawaban:

22

D×D

C=1N1X0X0.

N×N

G=1N1X0X0.

Analisis komponen utama (PCA) dapat diimplementasikan melalui komposisi eigend dari salah satu matriks ini. Ini hanya dua cara berbeda untuk menghitung hal yang sama.

X=USVCG

C=VS2N1VG=US2N1U.

VUSUCG

N<DDDN<D


amuba
sumber
1
Jawaban bagus! Saya tidak tahu itu punya nama! Terima kasih banyak! Saya sekarang yakin untuk menggunakannya untuk mempercepat perhitungan saya.
Perjudian Sibbs
3
US/(n1)VUXU
Jawaban ini lebih jelas bahwa banyak paparan yang saya lihat di buku. Terima kasih.
usεr11852
Untuk tujuan referensi murni: Saya pikir makalah Technometrics 1969 dari IJ Good " Beberapa Aplikasi dari Dekomposisi Singular Matriks " adalah salah satu yang pertama untuk pertama kali merujuk sepenuhnya.
usεr11852
1
@ MatWenham Tepatnya.
amoeba