PCA saat dimensinya lebih besar dari jumlah sampel

21

Saya telah menemukan sebuah skenario di mana saya memiliki 10 sinyal / orang untuk 10 orang (jadi 100 sampel) berisi 14000 titik data (dimensi) yang harus saya sampaikan ke pengklasifikasi. Saya ingin mengurangi dimensi data ini dan PCA tampaknya menjadi cara untuk melakukannya. Namun, saya hanya dapat menemukan contoh PCA di mana jumlah sampel lebih besar dari jumlah dimensi. Saya menggunakan aplikasi PCA yang menemukan PC menggunakan SVD. Ketika saya melewatinya dataset 100x14000 saya ada 101 PC dikembalikan sehingga sebagian besar dimensi jelas diabaikan. Program menunjukkan 6 PC pertama mengandung 90% dari varians.

Apakah ini asumsi yang masuk akal bahwa 101 PC ini pada dasarnya mengandung semua varian dan dimensi yang tersisa dapat diabaikan?

Salah satu makalah yang saya baca mengklaim bahwa, dengan menggunakan set data yang serupa (walaupun kualitasnya sedikit lebih rendah) daripada milik saya, mereka mampu mengurangi 4.500 dimensi hingga 80 mempertahankan 96% dari informasi asli. Kertas tangan-gelombang atas rincian teknik PCA yang digunakan, hanya 3100 sampel tersedia, dan saya punya alasan untuk percaya sampel kurang dari yang digunakan untuk benar-benar melakukan PCA (untuk menghilangkan bias dari fase klasifikasi).

Apakah saya kehilangan sesuatu atau apakah ini benar-benar cara PCA digunakan dengan dataset ukuran sampel berdimensi tinggi-rendah? Umpan balik akan sangat dihargai.

James
sumber
2
Jika Anda tidak memiliki lebih banyak data daripada dimensi, sulit untuk menemukan arah yang menghilangkan sebagian besar variabilitas yang harus dilakukan oleh komponen utama pertama. Secara umum ada kutukan dimensi. Data cenderung menjauh dari pusat dalam dimensi tinggi. Bellman menulis tentang ini pada 1960-an.
Michael R. Chernick
Sangat terkait: stats.stackexchange.com/questions/123318 .
Amoeba mengatakan Reinstate Monica

Jawaban:

9

Saya akan melihat masalah dari sudut yang sedikit berbeda: seberapa kompleks model yang Anda mampu dengan hanya 10 subjek / 100 sampel?

Dan pertanyaan itu biasanya saya jawab dengan: kurang dari 100 PC. Perhatikan bahwa saya bekerja pada tipe data yang berbeda (spektrum vibrasi), jadi beberapa hal mungkin sedikit berbeda. Di bidang saya, pengaturan umum akan menggunakan 10 atau 25 atau 50 PC dihitung dari O (1000) spektrum O (10) subjek.

Inilah yang akan saya lakukan:

  • Lihatlah varians yang dicakup oleh 100 PC tersebut. Saya biasanya menemukan bahwa hanya beberapa komponen yang benar-benar berkontribusi pada varians dalam data kami.

  • Saya sangat suka PLS sebagai pra-perawatan untuk klasifikasi lebih dari PCA karena melakukan pekerjaan yang jauh lebih baik dalam memilah arah yang memiliki variasi tinggi yang tidak membantu klasifikasi (dalam kasus saya yang bisa menjadi variasi fokus, perbedaan ketebalan sampel,. ..) Dalam pengalaman saya, saya sering mendapatkan pengklasifikasi serupa dengan 10 variabel laten PLS atau 25 hingga 50 PC.

  • Sampel validasi perlu diproses dengan rotasi PCA yang dihitung hanya dari set pelatihan, jika tidak validasi dapat (dan dalam kasus ekstrem seperti milik Anda kemungkinan besar) memiliki bias optimis yang terlalu besar.
    Dengan kata lain, jika Anda melakukan out-of-bootstrap atau validasi silang, preprocessing PCA atau PLS perlu dihitung untuk setiap kombinasi rangkaian train / test set secara terpisah.

Cbeleites mendukung Monica
sumber
Terima kasih untuk posting yang sangat informatif. Saya bekerja dengan data sinyal biometrik. Untuk melakukan klasifikasi dengan kinerja yang wajar, saya memerlukan kurang dari 100 PC, di suatu tempat di kisaran 25-50 akan baik-baik saja. Saya telah mempertimbangkan untuk mengurangi tingkat sampling saya untuk mengurangi jumlah sampel yang perlu saya periksa, tetapi apakah Anda berharap resolusi trade-off sepadan atau apakah akan ada efek sama sekali mengingat pelatihan ukuran yang sama tetap sama ? Meskipun saya membutuhkan PCA agar konsisten dengan studi lain di lapangan, saya pasti akan melihat PLS sebagai pendekatan sekunder.
James
1
@ James: Saya khawatir pertanyaan laju sampling tidak dapat dijawab tanpa mengetahui data Anda. Pada dasarnya itu adalah pertanyaan tentang ukuran sampel yang efektif. Tanpa mengetahui lebih jauh, kita hanya bisa mengatakan bahwa itu adalah suatu tempat antara n (orang) dan n (sampel). Jika semua 10 sampel 1 orang jauh lebih mirip satu sama lain daripada sampel orang yang berbeda, maka lebih banyak sampel tidak menambahkan banyak informasi ke kumpulan data. Anda dapat memeriksa bahwa dengan membangun satu model dengan semua sampel dan model kedua dengan hanya satu sampel per orang dan membandingkan kinerjanya.
cbeleites mendukung Monica
@James: (bagian 2) Jika Anda berpikir bahwa sampel satu orang agak mirip satu sama lain, maka Anda harus berhati-hati bahwa validasi dan set pelatihan tidak berbagi persone (yaitu semua sampel satu orang baik dalam pelatihan atau dalam set tes).
Cbeleites mendukung Monica
Terima kasih sudah kembali padaku. Data saya memiliki tingkat variabilitas yang cukup tinggi dengan ruang sampel yang tumpang tindih yang signifikan di antara kelas pengguna. Tapi maaf, daripada mengurangi sampel yang saya maksudkan mengurangi resolusi pada 14000 titik data, jadi katakanlah hanya setiap titik 2, 3 atau 4 digunakan dalam PCA, tetapi dengan jumlah sampel pengguna yang sama. Saya ingin tahu apakah penurunan resolusi seperti itu diharapkan akan berdampak positif, negatif atau tidak sama sekali pada hasil PCA mengingat dimensi saya sudah jauh lebih besar daripada sampel saya.
James
1
th
9

npnpnn1

ttnphns
sumber
2
2
@ ttnphns: Apakah Anda tahu kutipan yang menyatakan apa yang Anda katakan di sini?
Patrick
4

Datang dari sudut pandang berbeda:

kk

k

Joe Pete yang kekar
sumber