Analisis Komponen Utama Menghilangkan Kebisingan Dalam Data


11

Apakah Principal Component Analysis (PCA) menghilangkan noise di set data? Jika PCA tidak menghilangkan noise dalam kumpulan data, apa yang sebenarnya PCA lakukan terhadap kumpulan data? Adakah yang bisa membantu saya mengenai masalah ini?


1
Tidak itu tidak menghilangkan "noise" (dalam arti bahwa data yang berisik akan tetap berisik). PCA hanyalah transformasi data. Setiap komponen PCA mewakili kombinasi linier dari prediktor. Dan PCA dapat dipesan dengan nilai Eigen mereka: dalam arti yang lebih luas semakin besar nilai Eigen semakin banyak varians yang dibahas. Oleh karena itu, transformasi lossless adalah ketika Anda memiliki PC sebanyak dimensi. Sekarang, ketika Anda hanya mempertimbangkan beberapa PC dengan Ev besar maka Anda mengabaikan komponen yang menambah sedikit varians dalam data (tapi ini bukan "noise").
Drey

2
Seperti @Drey sudah catat, komponen varian rendah tidak perlu berisik. Anda dapat memiliki noise sebagai komponen varians tinggi juga.
Richard Hardy

Terima kasih. Sebenarnya saya melakukan apa yang @Drey sebutkan dalam komentarnya, yang saya hilangkan dari PC dengan Ev kecil yang sebelumnya saya pikir itu adalah noise di dalam kumpulan data. Jadi jika saya ingin terus menghilangkan PC dengan Ev kecil, dan menggunakannya sebagai input untuk model regresi dan meningkatkan kinerja model regresi. Dapatkah saya mengatakan PCA telah membuat data mudah diintepret dan membuat prediksi menjadi lebih akurat.
bbadyalina

@ Richard Hardy jika PCA tidak mencari kebisingan dari data, bagaimana transformasi linear meningkatkan kumpulan data? Entah bagaimana saya bingung tentang ini, karena ada banyak peneliti menggunakan PCA hybrid dengan model deret waktu yang meningkatkan kinerja prediksi dibandingkan dengan model deret waktu konvensional. Terimakasih atas balasan anda.
bbadyalina

Tidak ada data yang "mudah" (itu adalah kombinasi fitur linear) juga tidak akan mudah untuk ditafsirkan (interpretasi koefisien dalam model regresi). Tetapi prediksi Anda mungkin menjadi lebih akurat. Terlebih lagi, model Anda dapat digeneralisasi dengan baik.
Drey

Jawaban:


15

Principal Component Analysis (PCA) digunakan untuk a) denoise dan untuk b) mengurangi dimensi.

Itu tidak menghilangkan kebisingan, tetapi dapat mengurangi kebisingan.

Pada dasarnya transformasi linear ortogonal digunakan untuk menemukan proyeksi semua data ke dalam dimensi k, sedangkan dimensi k ini adalah yang memiliki varian tertinggi. Vektor eigen dari matriks kovarians (dari dataset) adalah dimensi target dan mereka dapat diberi peringkat sesuai dengan nilai eigennya. Nilai eigen tinggi menandakan varians tinggi yang dijelaskan oleh dimensi vektor eigen terkait.

Mari kita lihat pada dataset usps , diperoleh dengan memindai digit tulisan tangan dari amplop oleh US Postal Service.

Pertama, kita menghitung vektor eigen dan nilai eigen dari matriks kovarians dan memplot semua nilai eigen turun. Kita dapat melihat bahwa ada beberapa nilai eigen yang dapat dinamai komponen utama, karena nilai eigennya jauh lebih tinggi daripada yang lain.

Atas: Semua nilai eigen dari matriks kovarians dari dataset usps, diurutkan menurun - turun: top25 nilai eigen

Setiap vektor eigen adalah kombinasi linear dari dimensi asli . Oleh karena itu, vektor eigen (dalam hal ini) adalah gambar itu sendiri, yang dapat diplot.

Vektor eigen dengan 5 nilai eigen tertinggi diplot

Untuk b) pengurangan dimensi, sekarang kita bisa menggunakan lima vektor eigen teratas dan memproyeksikan semua data (awalnya gambar 16 * 16 piksel) ke dalam ruang 5 dimensi dengan kemungkinan hilangnya varian yang paling kecil.

(Catatan di sini: Dalam beberapa kasus, pengurangan dimensi non-linear (seperti LLE) mungkin lebih baik daripada PCA, lihat wikipedia untuk contoh)

Akhirnya kita bisa menggunakan PCA untuk denoising. Oleh karena itu kami dapat menambahkan noise tambahan ke dataset asli dalam tiga level (rendah, tinggi, outlier) untuk dapat membandingkan kinerja. Untuk kasus ini saya menggunakan gaussian noise dengan rata-rata nol dan varians sebagai kelipatan dari varians asli (Faktor 1 (rendah), Faktor 2 (tinggi), Faktor 20 (outlier)) Hasil yang mungkin terlihat seperti ini. Namun dalam setiap kasus, parameter k harus dicari untuk menemukan hasil yang baik. masukkan deskripsi gambar di sini

Akhirnya, perspektif lain adalah membandingkan nilai eigen dari data yang sangat bising dengan data asli (bandingkan dengan gambar pertama dari jawaban ini). Anda dapat melihat bahwa noise mempengaruhi semua nilai eigen, sehingga hanya menggunakan 25 nilai eigen teratas untuk denoising, pengaruh noise berkurang.

masukkan deskripsi gambar di sini


ini hanya angka-angka yang Anda coba temukan SNR untuk mereka
Boris

Tidak, saya hanya menggunakan angka-angka ini untuk menggambarkan koneksi antara pengurangan noise dan PCA untuk dataset contoh. Anda dipersilakan untuk menulis jawaban yang menambah perspektif baru.
Nikolas Rieble

Hai Nikolas, jawaban Anda luar biasa, +1. Saya baru saja mengirim pertanyaan tentang pertukaran tumpukan matematika, saya bertanya-tanya apakah Anda dapat membantu menjawabnya? Terutama, saya bingung tentang MENGAPA vektor eigen dari matriks kovarians dari dataset asli berubah menjadi arah dengan varian tertinggi, dan karenanya kami ingin memproyeksikannya ... di sini, saya menghubungkan pertanyaan: matematika. stackexchange.com/questions/3213775/... Terima kasih!
joshuaronis
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.