Pernyataan masalah
Masalah geometris yang PCA coba optimalkan jelas bagi saya: PCA mencoba menemukan komponen utama pertama dengan meminimalkan kesalahan rekonstruksi (proyeksi), yang secara bersamaan memaksimalkan varians dari data yang diproyeksikan.
Tepat sekali. Saya menjelaskan hubungan antara dua formulasi ini dalam jawaban saya di sini (tanpa matematika) atau di sini (dengan matematika).
Cw∥w∥=1w⊤Cw
(Hanya dalam kasus ini tidak jelas: jika adalah matriks data terpusat, maka proyeksi diberikan oleh dan variansinya adalah .)XXw1n−1(Xw)⊤⋅Xw=w⊤⋅(1n−1X⊤X)⋅w=w⊤Cw
Di sisi lain, vektor eigen dari adalah, menurut definisi, setiap vektor sedemikian rupa sehingga .CvCv=λv
Ternyata arah utama pertama diberikan oleh vektor eigen dengan nilai eigen terbesar. Ini adalah pernyataan yang tidak menyakitkan dan mengejutkan.
Bukti
Jika seseorang membuka buku atau tutorial apa pun di PCA, Anda dapat menemukan di sana bukti hampir satu baris berikut dari pernyataan di atas. Kami ingin memaksimalkan bawah batasan bahwa ; ini dapat dilakukan dengan memperkenalkan pengali Lagrange dan memaksimalkan ; membedakan, kita memperoleh , yang merupakan persamaan vektor eigen. Kita melihat bahwa sebenarnya menjadi nilai eigen terbesar dengan menggantikan solusi ini ke dalam fungsi objektif, yang memberikanw⊤Cw∥w∥=w⊤w=1w⊤Cw−λ(w⊤w−1)Cw−λw=0λw⊤Cw−λ(w⊤w−1)=w⊤Cw=λw⊤w=λ . Berdasarkan fakta bahwa fungsi objektif ini harus dimaksimalkan, harus menjadi nilai eigen terbesar, QED.λ
Ini cenderung tidak terlalu intuitif bagi kebanyakan orang.
Bukti yang lebih baik (lihat mis. Jawaban rapi oleh @ cardinal ) ini mengatakan bahwa karena adalah matriks simetris, ia diagonal dalam basis vektor eigennya. (Ini sebenarnya disebut teorema spektral .) Jadi kita dapat memilih basis ortogonal, yaitu yang diberikan oleh vektor eigen, di mana diagonal dan memiliki nilai eigen di diagonal. Dengan dasar itu, menyederhanakan menjadi , atau dengan kata lain varians diberikan oleh jumlah tertimbang dari nilai-nilai eigen. Hampir segera bahwa untuk memaksimalkan ungkapan ini orang cukup mengambilCC λ i w ⊤ C w Σ λ i w 2 i w = ( 1 , 0 , 0 , ... , 0 ) λ 1Cλiw⊤Cw∑λiw2iw=(1,0,0,…,0), yaitu vektor eigen pertama, menghasilkan varians (memang, menyimpang dari solusi ini dan "memperdagangkan" bagian-bagian dari nilai eigen terbesar untuk bagian-bagian yang lebih kecil hanya akan mengarah pada keseluruhan varian yang lebih kecil). Perhatikan bahwa nilai tidak bergantung pada basis! Mengubah ke basis vektor eigen sama dengan rotasi, jadi dalam 2D orang dapat membayangkan hanya memutar selembar kertas dengan scatterplot; jelas ini tidak dapat mengubah varian apa pun.λ1w⊤Cw
Saya pikir ini adalah argumen yang sangat intuitif dan sangat berguna, tetapi ini bergantung pada teorema spektral. Jadi masalah sebenarnya di sini yang saya pikirkan adalah: apa intuisi di balik teorema spektral?
Teorema spektral
Ambil matriks simetris . Ambil vektor eigennya dengan nilai eigen terbesar . Jadikan vektor eigen ini sebagai vektor basis pertama dan pilih vektor basis lainnya secara acak (sehingga semuanya vektor ortonormal). Bagaimana terlihat dalam basis ini?Cw1λ1C
Ini akan memiliki di sudut kiri atas, karena dalam basis ini dan harus sama dengan .λ1w1=(1,0,0…0)Cw1=(C11,C21,…Cp1)λ1w1=(λ1,0,0…0)
Dengan argumen yang sama, akan ada nol di kolom pertama di bawah .λ1
Tetapi karena simetris, ia akan memiliki nol di baris pertama setelah juga. Jadi akan terlihat seperti itu:λ1
C=⎛⎝⎜⎜⎜⎜λ10⋮00…0⎞⎠⎟⎟⎟⎟,
dimana ruang kosong berarti ada blok dari beberapa elemen di sana. Karena matriksnya simetris, blok ini juga akan simetris. Jadi kita dapat menerapkan argumen yang persis sama dengannya, secara efektif menggunakan vektor eigen kedua sebagai vektor basis kedua, dan mendapatkan dan di diagonal. Ini dapat berlanjut sampai diagonal. Itu pada dasarnya adalah teorema spektral. (Perhatikan cara kerjanya hanya karena simetris.)λ1λ2CC
Inilah reformulasi yang lebih abstrak dari argumen yang persis sama.
Kita tahu bahwa , jadi vektor eigen pertama mendefinisikan subruang 1 dimensi di mana bertindak sebagai perkalian skalar. Sekarang mari kita ambil vektor orthogonal ke . Maka hampir segera bahwa juga ortogonal untuk . Memang:Cw1=λ1w1Cvw1Cvw1
w⊤1Cv=(w⊤1Cv)⊤=v⊤C⊤w1=v⊤Cw1=λ1v⊤w1=λ1⋅0=0.
Ini berarti bertindak pada seluruh subruang yang tersisa ortogonal ke sehingga tetap terpisah dari . Ini adalah properti penting dari matriks simetris. Jadi kita dapat menemukan vektor eigen terbesar di sana, , dan melanjutkan dengan cara yang sama, akhirnya membangun basis vektor eigen ortonormal.Cw1w1w2