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?
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?
Jawaban:
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.
Setiap vektor eigen adalah kombinasi linear dari dimensi asli . Oleh karena itu, vektor eigen (dalam hal ini) adalah gambar itu sendiri, yang dapat 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.
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.