Memahami analisis komponen utama, vektor eigen & nilai eigen


976

Di kelas pengenalan pola hari ini, profesor saya berbicara tentang PCA, vektor eigen, dan nilai eigen.

Saya mengerti matematika itu. Jika saya diminta untuk menemukan nilai eigen dll. Saya akan melakukannya dengan benar seperti mesin. Tapi saya tidak memahaminya . Saya tidak mendapatkan tujuan itu. Saya tidak merasakannya.

Saya sangat percaya pada kutipan berikut:

Anda tidak benar-benar memahami sesuatu kecuali Anda bisa menjelaskannya kepada nenek Anda. -- Albert Einstein

Yah, saya tidak bisa menjelaskan konsep-konsep ini kepada orang awam atau nenek.

  1. Mengapa PCA, vektor eigen & nilai eigen? Apa yang dibutuhkan konsep-konsep ini?
  2. Bagaimana Anda menjelaskan ini kepada orang awam?

95
Pertanyaan bagus. Saya setuju dengan kutipannya juga. Saya percaya ada banyak orang dalam statistik dan matematika yang sangat cerdas, dan bisa sangat mendalam dalam pekerjaan mereka, tetapi tidak terlalu memahami apa yang sedang mereka kerjakan. Atau mereka memang melakukannya, tetapi tidak mampu menjelaskannya kepada orang lain. Saya berusaha keras untuk memberikan jawaban di sini dalam bahasa Inggris yang sederhana, dan mengajukan pertanyaan yang menuntut rencana jawaban bahasa Inggris.
Neil McGuigan

7
Ini ditanyakan di situs Matematika pada bulan Juli, tetapi tidak juga dan tidak mendapatkan banyak jawaban (tidak mengherankan, mengingat fokus yang berbeda di sana). math.stackexchange.com/questions/1146/…
whuber

6
Mirip dengan penjelasan oleh Zuur et al dalam Menganalisis data ekologi di mana mereka berbicara tentang memproyeksikan tangan Anda pada proyektor overhead. Anda terus memutar tangan Anda sehingga proyeksi di dinding terlihat sangat mirip dengan apa yang Anda pikir akan terlihat seperti tangan.
Roman Luštrik

12
Pertanyaan ini membawa saya ke sebuah makalah yang bagus, dan meskipun saya pikir itu adalah kutipan yang bagus, itu bukan dari Einstein. Ini adalah kesalahan distribusi yang umum, dan kutipan asli yang lebih mungkin mungkin adalah yang ini dari Ernest Rutherford yang mengatakan, "Jika Anda tidak dapat menjelaskan fisika Anda kepada pelayan bar, itu mungkin bukan fisika yang sangat bagus." Semua sama, terima kasih sudah memulai utas ini.
gavaletz

23
Alice Calaprice, Einstein yang dapat dikutip akhir , Princeton UP 2011 menandai kutipan di sini sebagai salah satu dari banyak "Mungkin bukan oleh Einstein". Lihat hal.482.
Nick Cox

Jawaban:


1293

Bayangkan makan malam keluarga yang besar, di mana semua orang mulai bertanya tentang PCA. Pertama Anda menjelaskannya kepada nenek buyut Anda; kemudian untuk Anda nenek; lalu ke ibumu; kemudian ke pasangan Anda; akhirnya, untuk putri Anda (yang merupakan ahli matematika). Setiap kali orang berikutnya kurang dari orang awam. Berikut adalah cara percakapannya.

Nenek buyut: Saya mendengar Anda sedang belajar "Pee-See-Ay". Aku ingin tahu apa itu ...

Anda: Ah, itu hanya metode meringkas beberapa data. Lihat, kami punya beberapa botol anggur berdiri di sini di atas meja. Kita dapat menggambarkan masing-masing anggur berdasarkan warnanya, seberapa kuatnya, seberapa usianya, dan sebagainya (lihat visualisasi yang sangat bagus dari sifat-sifat anggur yang diambil dari sini ). Kita dapat menyusun seluruh daftar karakteristik yang berbeda dari setiap anggur di ruang bawah tanah kita. Tetapi banyak dari mereka akan mengukur properti terkait dan akan berlebihan. Jika demikian, kita harus dapat meringkas setiap anggur dengan karakteristik yang lebih sedikit! Inilah yang dilakukan PCA.

Nenek: Ini menarik! Jadi PCA ini memeriksa karakteristik apa yang mubazir dan membuangnya?

Anda: Pertanyaan bagus, nenek! Tidak, PCA tidak memilih beberapa karakteristik dan membuang yang lain. Sebaliknya, itu membangun beberapa karakteristik baru yang ternyata meringkas daftar anggur kami dengan baik. Tentu saja karakteristik baru ini dibangun menggunakan yang lama; misalnya, karakteristik baru dapat dihitung sebagai usia anggur dikurangi tingkat keasaman anggur atau kombinasi lainnya seperti itu (kami menyebutnya kombinasi linear ).

Bahkan, PCA menemukan karakteristik terbaik, yang merangkum daftar anggur serta hanya mungkin (di antara semua kombinasi linier yang mungkin). Inilah mengapa sangat bermanfaat.

Ibu: Hmmm, ini kedengarannya bagus, tapi saya tidak yakin saya mengerti. Apa yang sebenarnya Anda maksudkan ketika Anda mengatakan bahwa karakteristik PCA baru ini "meringkas" daftar anggur?

Anda: Saya kira saya bisa memberikan dua jawaban berbeda untuk pertanyaan ini. Jawaban pertama adalah bahwa Anda mencari beberapa sifat anggur (karakteristik) yang sangat berbeda di seluruh anggur. Memang, bayangkan Anda memiliki properti yang sama untuk sebagian besar anggur. Ini tidak akan sangat berguna, bukan? Anggur sangat berbeda, tetapi properti baru Anda membuat semuanya terlihat sama! Ini tentu saja ringkasan yang buruk. Sebaliknya, PCA mencari properti yang menunjukkan variasi anggur sebanyak mungkin.

Jawaban kedua adalah Anda mencari properti yang memungkinkan Anda untuk memprediksi, atau "merekonstruksi", karakteristik anggur asli. Sekali lagi, bayangkan Anda membuat properti yang tidak ada hubungannya dengan karakteristik aslinya; jika Anda hanya menggunakan properti baru ini, tidak mungkin Anda dapat merekonstruksi yang asli! Ini, sekali lagi, akan menjadi ringkasan yang buruk. Jadi PCA mencari properti yang memungkinkan untuk merekonstruksi karakteristik asli sebaik mungkin.

Yang mengejutkan, ternyata kedua tujuan ini setara dan karenanya PCA dapat membunuh dua burung dengan satu batu.

Pasangan: Tapi sayang, kedua "tujuan" PCA ini terdengar sangat berbeda! Mengapa mereka setara?

Anda: Hmmm. Mungkin saya harus membuat gambar kecil (mengambil serbet dan mulai mencoret-coret) . Mari kita pilih dua karakteristik anggur, mungkin kegelapan anggur dan kandungan alkohol - Saya tidak tahu apakah mereka berkorelasi, tetapi mari kita bayangkan bahwa itu benar. Berikut ini sebutan plot sebaran anggur yang berbeda:

Data teladan PCA

xyw1x+w2yw1w2

Sekarang lihat di sini dengan sangat hati-hati - di sini adalah bagaimana proyeksi ini terlihat untuk garis yang berbeda (titik-titik merah adalah proyeksi dari titik-titik biru):

Animasi PCA: kesalahan varians dan rekonstruksi

Seperti yang saya katakan sebelumnya, PCA akan menemukan garis "terbaik" sesuai dengan dua kriteria berbeda tentang apa yang "terbaik". Pertama, variasi nilai di sepanjang garis ini harus maksimal. Perhatikan bagaimana "spread" (kami menyebutnya "varian") dari titik-titik merah berubah saat garis berputar; dapatkah Anda melihat kapan itu mencapai maksimum? Kedua, jika kita merekonstruksi dua karakteristik asli (posisi titik biru) dari yang baru (posisi titik merah), kesalahan rekonstruksi akan diberikan oleh panjang garis merah yang menghubungkan. Amati bagaimana panjang garis merah ini berubah saat garis berputar; dapatkah Anda melihat kapan panjang total mencapai minimum?

Jika Anda menatap animasi ini selama beberapa waktu, Anda akan melihat bahwa "varians maksimum" dan "kesalahan minimum" tercapai pada saat yang sama, yaitu ketika garis menunjuk ke kutu magenta yang saya tandai di kedua sisi awan anggur . Baris ini sesuai dengan properti anggur baru yang akan dibangun oleh PCA.

Omong-omong, PCA berarti "analisis komponen utama" dan properti baru ini disebut "komponen utama pertama". Dan alih-alih mengatakan "properti" atau "karakteristik" kita biasanya mengatakan "fitur" atau "variabel".

Anak perempuan: Bagus sekali, papa! Saya pikir saya dapat melihat mengapa kedua tujuan menghasilkan hasil yang sama: pada dasarnya karena teorema Pythagoras, bukan? Bagaimanapun, saya mendengar bahwa PCA entah bagaimana terkait dengan vektor eigen dan nilai eigen; di mana mereka pada gambar ini?

90, jumlah kedua kuantitas ini sama dengan jarak kuadrat rata-rata antara pusat awan anggur dan setiap titik biru; inilah teorema Pythagoras. Tentu saja jarak rata-rata ini tidak tergantung pada orientasi garis hitam, sehingga semakin tinggi varians semakin rendah kesalahan (karena jumlah mereka konstan). Argumen tangan-bergelombang ini dapat dibuat tepat ( lihat di sini ).

Ngomong-ngomong, Anda bisa membayangkan bahwa garis hitam adalah batang yang solid dan setiap garis merah adalah pegas. Energi pegas sebanding dengan panjang kuadratnya (ini dikenal dalam fisika sebagai hukum Hooke), sehingga batang akan mengorientasikan dirinya sendiri seperti untuk meminimalkan jumlah jarak kuadrat ini. Saya membuat simulasi bagaimana akan terlihat, di hadapan beberapa gesekan kental:

Animasi PCA: pendulum

2×2

(1.070,630,630,64).
x1.07y0.640.63
(1.52000.19),
1.52

(0.81,0.58)


Per permintaan populer, saya membagikan kode Matlab untuk menghasilkan animasi di atas .


79
+1 Dongeng dan ilustrasi yang bagus. ...then to your mother; then to your wife; finally, to your daughter (who is a mathematician)...Saya akan melanjutkan: dan setelah makan malam - untuk diri sendiri. Dan di sini Anda tiba-tiba macet ...
ttnphns

68
Saya benar-benar menyukai ilustrasi yang Anda buat untuk jawaban ini.
shadowtalker

57
Saya biasanya hanya menelusuri Cross Validated untuk membaca hal-hal, tetapi saya tidak pernah punya alasan untuk membuat akun ... terutama karena jenis pertanyaan di sini di luar keahlian saya dan saya tidak bisa menjawabnya. Saya biasanya hanya di StackOverflow dan saya sudah berada di jaringan StackExchange selama sekitar satu tahun sekarang. Namun, saya hanya memutuskan untuk membuat akun hari ini terutama untuk meningkatkan posting Anda. Ini mungkin eksposisi PCA terbaik yang pernah saya baca, dan saya sudah membaca banyak. Terima kasih atas pos yang luar biasa ini - mendongeng yang luar biasa, grafiknya, dan sangat mudah dibaca! +1
rayryeng

14
Catatan untuk saya sendiri: jawaban saya saat ini memiliki 100 upvotes, JDLong memiliki 220 upvotes; jika kita mengasumsikan pertumbuhan konstan maka saya memiliki 100 upvotes / tahun dan dia memiliki 40 upvotes / tahun. Atau lebih tepatnya 55 / tahun jika dihitung sejak melewati 100 upvotes [mendapat lencana emas] pada Januari 2014. Ini berarti bahwa saya akan mengejar ketinggalan dalam 2,5--3 tahun, sekitar akhir 2018. Mari kita lihat :-)
amoeba

3
Catatan untuk saya sendiri cont .: Saya harus memperbarui perkiraan saya. Satu bulan kemudian jawaban ini mendapat 18 upvotes vs 5 untuk JDLong. Ini menunjukkan bahwa saya mungkin mengejar ketinggalan di bawah satu tahun dari sekarang. Menariknya, 5 / bulan sangat dekat dengan perkiraan saya di atas 55 / tahun, tetapi 18 / bulan lebih dari dua kali di atas 100 / tahun. Karena jawaban saya tidak berubah, sepertinya menuju ke tempat kedua mempercepat upvoting (mungkin karena peningkatan visibilitas).
amoeba

376

Naskah "Sebuah tutorial tentang Analisis Komponen Utama" oleh Lindsay I Smith benar-benar membantu saya grok PCA. Saya pikir itu masih terlalu rumit untuk dijelaskan kepada nenek Anda, tetapi itu tidak buruk. Anda harus melewati beberapa bit pertama pada penghitungan eigen, dll. Lompat ke contoh di bab 3 dan lihat grafik.

Saya punya beberapa contoh di mana saya bekerja melalui beberapa contoh mainan sehingga saya bisa memahami regresi linier PCA vs OLS. Saya akan mencoba menggali dan mempostingnya juga.

sunting: Anda tidak benar-benar bertanya tentang perbedaan antara Ordinary Least Squares (OLS) dan PCA tetapi karena saya menggali catatan saya, saya membuat posting blog tentang hal itu . Versi yang sangat singkat adalah OLS dari y ~ x meminimalkan kesalahan tegak lurus terhadap sumbu independen seperti ini (garis kuning adalah contoh dari dua kesalahan):

teks alternatif

Jika Anda mundur x ~ y (tidak seperti y ~ x pada contoh pertama) itu akan meminimalkan kesalahan seperti ini:

teks alternatif

dan PCA secara efektif meminimalkan kesalahan orthogonal pada model itu sendiri, seperti:

teks alternatif

Lebih penting lagi, seperti yang dikatakan orang lain, dalam situasi di mana Anda memiliki banyak variabel independen, PCA membantu Anda mengetahui kombinasi linear dari variabel-variabel ini yang paling penting. Contoh-contoh di atas hanya membantu memvisualisasikan seperti apa komponen utama pertama dalam kasus yang sangat sederhana.

Dalam posting blog saya, saya memiliki kode R untuk membuat grafik di atas dan untuk menghitung komponen utama pertama. Mungkin ada baiknya bermain dengan membangun intuisi Anda di sekitar PCA. Saya cenderung tidak benar - benar memiliki sesuatu sampai saya menulis kode yang mereproduksi itu. 


9
Panggilan bagus untuk naskah Lindsay I Smith - baca saja hari ini; sangat membantu.
Stedy

7
Jadi apakah PCA setara dengan Total Least Squares jika ia mengoptimalkan jarak ortogonal dari titik ke garis pas?
Marcin

3
m1mppx^iji=1,,nj=1,,pi=1nj=1p(xijx^ij)2

3
Kesalahan matematika kecil di Smith: "semua vektor eigen dari sebuah matriks adalah tegak lurus ... tidak peduli berapa banyak dimensi yang Anda miliki" hanya berlaku untuk matriks simetris, inilah satu dengan mereka yang terpisah 45 derajat . Smith mencatat simetri matriks kovarians sebelumnya, tetapi bukan implikasinya - simetri memastikan nvektor eigen tegak lurus. Bahkan, tidak semua n x nmatriks nyata bahkan memiliki nilai eigen nyata (misalnya {{0,1}, {- 1,0}}) dan dari mereka yang melakukannya, tidak semua memiliki nvektor eigen independen (misalnya {{1,1}, {0 , 1}})! Masalah simetri!
Silverfish

8
Sebagai vektor matematika yang mengajar eigen, saya harus merasa ngeri ketika membaca naskah Lindsay Smith ini. "... vektor yang dihasilkan adalah kelipatan integer dari aslinya ..." - apa gunanya menyebutkan integer ? Vektor eigen dari matriks A adalah setiap vektor X sehingga AX adalah kelipatan dari X. Bukan kelipatan integer, hanya kelipatan! Multiple non-integer juga ok! Astaga mengapa menciptakan kebingungan yang tidak perlu di mana tidak ada?
Dmitri Zaitsev

144

Mari kita lakukan (2) dulu. PCA cocok dengan ellipsoid untuk data. Ellipsoid adalah generalisasi multidimensi dari bentuk bola terdistorsi seperti cerutu, pancake, dan telur. Ini semua dijelaskan dengan rapi oleh arah dan panjang sumbu utama mereka (semi-), seperti sumbu cerutu atau telur atau bidang pancake. Tidak peduli bagaimana ellipsoid diputar, vektor eigen menunjuk ke arah utama tersebut dan nilai eigen memberi Anda panjangnya. Nilai eigen terkecil sesuai dengan arah tertipis yang memiliki variasi paling sedikit, sehingga mengabaikannya (yang membuatnya rata) kehilangan informasi yang relatif sedikit: itu PCA.

(1) Terlepas dari penyederhanaan (di atas), kita memiliki kebutuhan untuk deskripsi, visualisasi, dan wawasan yang penuh makna. Mampu mengurangi dimensi adalah hal yang baik : membuatnya lebih mudah untuk menggambarkan data dan, jika kita beruntung untuk menguranginya menjadi tiga atau kurang, mari kita menggambar. Kadang-kadang kita bahkan dapat menemukan cara yang berguna untuk menafsirkan kombinasi data yang diwakili oleh koordinat dalam gambar, yang dapat memberikan wawasan tentang perilaku bersama variabel.


200

Tokoh

Setiap cloud titik 3D yang "koheren" dalam arti tidak menunjukkan cluster atau sulur atau outlier akan terlihat seperti salah satunya. Awan titik 3D sama sekali - yang disediakan tidak semua titik merupakan kebetulan - dapat digambarkan oleh salah satu dari angka-angka ini sebagai titik awal keberangkatan untuk mengidentifikasi pengelompokan atau pola lebih lanjut.

Intuisi yang Anda kembangkan dari merenungkan konfigurasi seperti itu dapat diterapkan ke dimensi yang lebih tinggi, meskipun sulit atau tidak mungkin untuk memvisualisasikan dimensi tersebut.


2
Untuk menambahkan ini, ketika Anda memiliki (hampir) semiaks yang sama (yaitu ellipsoid memiliki (dekat-) irisan melingkar), itu menunjukkan bahwa dua potong data yang sesuai dengan sumbu memiliki (hampir) ketergantungan; seseorang dapat berbicara tentang sumbu utama untuk elips, tetapi lingkaran hanya memiliki satu jari-jari. :)
JM bukan ahli statistik

6
Saya akan lebih berhati-hati di sini, JM Pertama, hanya untuk memperjelas, dengan "hampir-ketergantungan" Anda harus berarti "hampir mandiri." Ini akan berlaku untuk varian multinormal, tetapi dalam banyak kasus PCA dilakukan dengan data yang sangat tidak normal. Memang, analisis pengelompokan yang mengikuti beberapa perhitungan PCA dapat dipandang sebagai salah satu cara untuk menilai bentuk non-normalitas yang kuat. Secara matematis, lingkaran memang memiliki sumbu utama, tetapi mereka tidak ditentukan secara unik: Anda dapat memilih pasangan jari ortogonal sebagai sumbu utama.
Whuber

1
Ya, maaf, saya kira "sumbu utama sebuah lingkaran tidak pasti" akan menjadi cara yang lebih baik untuk menggambarkannya.
JM bukan ahli statistik

2
Interpretasi yang sangat bagus! Mencoba memahaminya dengan lebih baik .. di mana dalam matematika PCA orang dapat melihat bahwa "PCA cocok dengan ellipsoid untuk data"?
Kochede

4
@Kochede ellipsoid adalah kontur dari bentuk kuadrat. Matriks kovarians adalah bentuk kuadratik. PCA mengidentifikasi kapak dan panjangnya.
whuber

106

Hmm, begini untuk mengambil sepenuhnya non-matematika pada PCA ...

Bayangkan Anda baru saja membuka toko sari buah apel. Anda memiliki 50 varietas sari buah apel dan Anda ingin mengetahui cara mengalokasikannya ke rak, sehingga sari yang serupa rasanya diletakkan di rak yang sama. Ada banyak rasa dan tekstur yang berbeda dalam sari - manis, getir, pahit, ragi, berbuah, jernih, aneh, dll. Jadi, apa yang perlu Anda lakukan untuk memasukkan botol ke dalam kategori adalah menjawab dua pertanyaan:

1) Kualitas apa yang paling penting untuk mengidentifikasi kelompok sari? misalnya, apakah mengelompokkan berdasarkan rasa manis memudahkan untuk mengelompokkan sari buah Anda ke dalam kelompok yang memiliki rasa yang sama dari pada mengklasifikasikan berdasarkan buah?

2) Bisakah kita mengurangi daftar variabel dengan menggabungkan beberapa variabel? misalnya apakah sebenarnya ada variabel yang merupakan kombinasi dari "ragi dan kejernihan dan kegembiraan" dan yang membuat skala yang sangat baik untuk mengklasifikasikan varietas?

Inilah yang pada dasarnya dilakukan PCA. Komponen utama adalah variabel yang berguna menjelaskan variasi dalam kumpulan data - dalam hal ini, yang bermanfaat membedakan antara kelompok. Setiap komponen utama adalah salah satu variabel penjelas asli Anda, atau kombinasi dari beberapa variabel penjelas asli Anda.


4
Bagaimana dengan vektor eigen & nilai eigen?
Ηλίας

3
Oke: nilai Eigen yang terkait dengan masing-masing komponen utama memberi tahu Anda berapa banyak variasi dalam set data yang dijelaskannya (dalam contoh saya, seberapa jelas ia memisahkan botol-botol Anda menjadi kelompok-kelompok). Mereka biasanya dinyatakan sebagai persentase dari total variasi dalam kumpulan data. Adapun vektor Eigen, yah, di situlah sebagai cakar mengatakan saya mengikuti output dari analisis seperti mesin;) Di kepala saya, mereka terkait dengan bagaimana Anda memutar ponsel Vince ke orientasi 'terbaik', tapi ini mungkin bukan cara yang benar untuk memikirkan mereka.
Freya Harrison

17
Vektor eigen hanyalah kombinasi linear dari variabel asli (dalam ruang faktor sederhana atau diputar); mereka menggambarkan bagaimana variabel "berkontribusi" pada setiap sumbu faktor. Pada dasarnya, anggap PCA sebagai cara untuk membangun sumbu baru yang mengarah ke arah varians maksimal (dalam ruang variabel asli), seperti yang dinyatakan oleh nilai eigen, dan bagaimana kontribusi variabel ditimbang atau diubah secara linear di ruang baru ini.
chl

seperti apa matriks kovarians masalah ini? apa yang diceritakan pada kita tentang variabel-variabelnya (manis, getir, pahit, ragi, berbuah, jernih, aneh, dll.)?
JustCurious

1
Saya tidak tahu apa itu tentang ahli statistik dan minuman beralkohol, tetapi Whiskey Classified melakukan ini untuk wiski Scotch ...
nekomatic

96

Saya akan menjawab dalam "istilah awam" dengan mengatakan bahwa PCA bertujuan untuk mencocokkan garis lurus ke titik data (semua orang tahu apa garis lurus itu). Kami menyebut garis lurus ini "komponen utama". Ada komponen utama sebanyak variabel. Komponen utama pertama adalah garis lurus terbaik yang dapat Anda masukkan ke data. Komponen utama kedua adalah garis lurus terbaik yang sesuai dengan kesalahan dari komponen utama pertama. Komponen utama ketiga adalah garis lurus terbaik yang sesuai dengan kesalahan dari komponen utama pertama dan kedua, dll., Dll.

Jika seseorang bertanya apa yang Anda maksud dengan "kesalahan terbaik" atau "kesalahan", maka ini memberitahu Anda bahwa mereka bukan "orang awam", jadi bisa masuk ke detail yang sedikit lebih teknis seperti kesalahan tegak lurus, tidak tahu di mana kesalahan tersebut berada arah x- atau y-, lebih dari 2 atau 3 dimensi, dll. Lebih jauh jika Anda menghindari membuat referensi untuk regresi OLS (yang "awam" mungkin tidak akan mengerti baik) penjelasannya lebih mudah.

Vektor-vektor eigen dan nilai-nilai eigen bukanlah konsep-konsep yang diperlukan semata, melainkan merupakan konsep-konsep matematika yang sudah ada. Ketika Anda memecahkan masalah matematika PCA, itu akhirnya setara dengan menemukan nilai eigen dan vektor eigen dari matriks kovarians.


8
+1, ini benar-benar dalam istilah "awam", dan saya tahu Anda dapat menurunkannya dengan sangat ketat jika Anda menginginkannya!
gung

2
Jawaban terbaik sejauh ini, menurut saya. Dan saya banyak menggunakan PCA.
a11msp

2
Wow - ini benar-benar penjelasan yang bagus dan sederhana! Terima kasih!
Nick

52

Saya bisa memberikan penjelasan / bukti PCA saya sendiri, yang menurut saya sangat sederhana dan elegan, dan tidak memerlukan apa pun kecuali pengetahuan dasar aljabar linier. Itu keluar cukup panjang, karena saya ingin menulis dalam bahasa yang mudah diakses.

Mnn

βββi=1Mxiμ2μ0xi=xiμi=1Mxi2

x=αv+wv,wγvγγx=αv

Baiklah, sekarang anggaplah kita memiliki vektor vαvxiαvxi,v/v2vxivxi,v

0

vvSvSoSvSoSo=Sv=0

0

i=1M(xiv)2=i=1MvTxiTxiv=vT(i=1MxiTxi)v.

XvvTXvX .

Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

vTXvei

eiTXei=eiT(λiei)=λi(ei2)2=λi.

λ1e1vv=i=1neiv,eii=1nv,ei2=1βi=v,ei

vTXvvei

(i=1nβiei)TX(i=1nβiei)=(i=1nβiei)(i=1nλiβiei)=i=1nλi(βi)2(ei2)2.

vTXv=i=1nλiβi2βi21

Itu berarti bahwa varian dari proyeksi adalah rata-rata tertimbang dari nilai eigen. Tentu saja, itu selalu kurang dari nilai eigen terbesar, itulah sebabnya itu harus menjadi pilihan kita dari vektor PCA pertama.

lin(e2,e3,,en)e2

i=1kλi/i=1nλi

kkv1,,vk

j=1ki=1nλiβij2=i=1nλiγi
γi=j=1kβij2.

eiv1,,vku1,,unkei=j=1kβijvj+j=1nkθjei,ujei2=1j=1kβij2+j=1nkθj2=1γi1i .

i=1nλiγiγi1i=1nγi=ki=1kλik


2
+1 Jawaban yang sangat bagus! Belum membaca sepenuhnya, tetapi jawaban Anda adalah jenis yang saya cari. Semua langkah dijelaskan =)
jjepsuomi

9
Tunjukkan pada saya seorang Layman yang tahu aljabar linear dasar, dan saya akan menunjukkan kepada Anda seorang sarjana matematika.
probabilityislogic

xiαvxi,v/v2xi,v/v

1
Saya pikir ini adalah penjelasan terbaik untuk PCA yang pernah saya lihat. Terima kasih.
Nimitz14

1
Itulah penjelasan favorit saya yang juga menunjukkan mengapa vektor eigen memaksimalkan varian.
Romwell

47

Baiklah, saya akan coba ini. Beberapa bulan yang lalu saya menggali banyak literatur untuk menemukan penjelasan intuitif yang bisa saya jelaskan kepada non-ahli statistik. Saya menemukan derivasi yang menggunakan pengganda Lagrange yang paling intuitif.

Katakanlah kita memiliki data dimensi tinggi - katakanlah 30 pengukuran dilakukan pada seekor serangga. Bug memiliki genotipe yang berbeda dan fitur fisik yang sedikit berbeda di beberapa dimensi ini, tetapi dengan data berdimensi tinggi seperti itu, sulit untuk mengetahui serangga mana yang termasuk dalam kelompok mana.

PCA adalah teknik untuk mengurangi dimensi dengan:

  1. Mengambil kombinasi linear dari variabel asli.
  2. Setiap kombinasi linier menjelaskan perbedaan paling banyak dalam data yang dapat dihasilkannya.
  3. Setiap kombinasi linier tidak berkorelasi dengan yang lain

Atau, dalam istilah matematika:

  1. Yj=ajx (kombinasi linear untuk komponen jth)
  2. k>jV(Yk)<V(Yj)
  3. akaj=0

Menemukan kombinasi linier yang memenuhi batasan-batasan ini membawa kita pada nilai eigen. Mengapa?

Saya merekomendasikan untuk membaca buku Pengantar Analisis Data Multivariat untuk derivasi penuh (hal. 50), tetapi ide dasarnya adalah masalah optimisasi yang berurutan (memaksimalkan varian) yang dibatasi sehingga a'a = 1 untuk koefisien a (untuk mencegah kasus) ketika varians dapat menjadi tak terbatas) dan dibatasi untuk memastikan koefisiennya ortogonal.

Ini mengarah ke pengoptimalan dengan pengali Lagrange, yang pada gilirannya mengungkapkan mengapa nilai eigen digunakan. Saya terlalu malas untuk mengetiknya (maaf!) ​​Tapi, ini PDF cukup baik untuk membuktikan dari titik ini.

Saya tidak akan pernah mencoba menjelaskan hal ini kepada nenek saya, tetapi jika saya harus berbicara secara umum tentang teknik pengurangan dimensi, saya akan menunjukkan contoh proyeksi sepele ini (bukan PCA). Misalkan Anda memiliki ponsel Calder yang sangat kompleks. Beberapa titik dalam ruang 3-d saling berdekatan, yang lain tidak. Jika kita menggantung ponsel ini dari langit-langit dan menyinarinya dari satu sudut, kita mendapatkan proyeksi ke bidang dimensi yang lebih rendah (dinding 2-d). Sekarang, jika ponsel ini terutama lebar di satu arah, tetapi kurus di arah lain, kita bisa memutarnya untuk mendapatkan proyeksi yang berbeda kegunaannya. Secara intuitif, bentuk kurus dalam satu dimensi yang diproyeksikan di dinding kurang berguna - semua bayangan tumpang tindih dan tidak memberi kita banyak informasi. Namun, jika kita memutarnya sehingga cahaya bersinar di sisi lebar, kami mendapatkan gambar yang lebih baik dari data dimensi yang diperkecil - titik lebih tersebar. Ini yang sering kita inginkan. Saya pikir nenek saya bisa mengerti bahwa :-)


6
Itu sangat awam ;-)

2
Agak sedikit matematika, tetapi cara terbaik untuk memahami sesuatu adalah dengan menurunkannya.
Vince

29
Anda memiliki nenek yang sangat berpendidikan :-).
whuber

7
saya suka penjelasan dengan cahaya yang bersinar pada struktur 3-d
Neil McGuigan

(+1) Semua adalah jawaban yang bagus tetapi ini juga akan saya berikan.
Digio

37

Mencoba menjadi non-teknis ... Bayangkan Anda memiliki data multivarian, awan titik multidimensi. Ketika Anda menghitung matriks kovarians yang sebenarnya Anda (a) pusatkan awan, yaitu menempatkan asalnya sebagai rata-rata multidimensi, sumbu sistem koordinat sekarang melintas di tengah awan, (b) mengenkripsi informasi tentang bentuk awan. dan bagaimana ia diorientasikan dalam ruang melalui entri varians-kovarians. Jadi, sebagian besar info penting tentang bentuk data secara keseluruhan disimpan dalam matriks kovarians.

Kemudian Anda melakukan eigen-dekomposisi martrix itu dan mendapatkan daftar nilai eigen dan jumlah vektor eigen yang sesuai. Sekarang, komponen utama ke-1 adalah variabel laten baru yang dapat ditampilkan sebagai sumbu yang melewati titik asal dan berorientasi sepanjang arah varians maksimal (ketebalan) awan. Varian sepanjang sumbu ini, yaitu varian dari koordinat semua titik di atasnya, adalahnilai eigen pertama, dan orientasi sumbu dalam ruang yang dirujuk ke sumbu asli (variabel) ditentukan oleh vektor eigen pertama: entri-entrinya adalah cosinus antara sumbu tersebut dan sumbu asli tersebut. Koordinat titik data yang disebutkan di atas pada komponen 1 adalah nilai komponen utama 1, atau skor komponen; mereka dihitung sebagai produk dari matriks data (terpusat) dan vektor eigen.

"Setelah" pr 1. komponen yang diukur adalah, untuk mengatakan, "dihapus" dari awan dengan semua varians yang diperhitungkan, dan dimensi awan turun satu. Selanjutnya, semuanya diulang dengan nilai eigen kedua dan vektor eigen kedua - pr ke-2. komponen sedang direkam, dan kemudian "dihapus". Dll

Jadi, sekali lagi: vektor eigen adalah arah cosinus untuk komponen-komponen utama, sedangkan nilai-nilai eigen adalah besarnya (varians) dalam komponen-komponen utama. Jumlah semua nilai eigen sama dengan jumlah varian yang ada pada diagonal matriks varians-kovarians. Jika Anda mentransfer informasi "magnitudinal" yang disimpan dalam nilai eigen ke vektor eigen untuk menambahkannya ke informasi "orientasi" yang tersimpan di sini Anda mendapatkan apa yang disebut pemuatan komponen utama ; pemuatan ini - karena membawa kedua jenis informasi - adalah kovariansi antara variabel asli dan komponen utama.

Kemudian PS Saya ingin menekankan dua kali di sini perbedaan terminologis antara vektor eigen dan beban . Banyak orang dan beberapa paket (termasuk beberapa R) dengan sembrono menggunakan kedua istilah tersebut secara bergantian. Ini adalah praktik yang buruk karena objek dan artinya berbeda. Vektor eigen adalah arah cosinus, sudut "rotasi" ortogonal yang menjadi nilai PCA. Loading adalah vektor eigen yang diinokulasi dengan informasi tentang variabilitas atau besarnya data yang diputar. Pembebanan adalah koefisien hubungan antara komponen dan variabel dan mereka langsung sebanding dengan koefisien asosiasi yang dihitung antara variabel - kovariansi, korelasi atau produk skalar lainnya1). Vektor eigen adalah koefisien untuk memprediksi variabel dengan skor komponen mentah. Memuat adalah koefisien untuk memprediksi variabel dengan skor komponen yang diskalakan (dinormalisasi) (tidak heran: memuat memiliki informasi awal tentang variabilitas, akibatnya, komponen yang digunakan harus dicabut darinya). Satu lagi alasan untuk tidak mencampur vektor eigen dan pembebanan adalah bahwa beberapa teknik pengurangan dimensi lain selain PCA - seperti beberapa bentuk analisis Faktor - menghitung pembebanan secara langsung, melewati vektor eigen. Vektor eigen adalah produk dekomposisi eigen atau dekomposisi nilai singular; beberapa bentuk analisis faktor tidak menggunakan dekomposisi ini dan tiba di loading sebaliknya. Akhirnya, ini adalah pemuatan, bukan vektor eigen, yang dengannya Anda menafsirkan komponen atau faktor (jika Anda perlu menafsirkannya). Memuat adalah tentang kontribusi komponen ke dalam variabel: di PCA (atau analisis faktor) komponen / faktor memuat dirinya ke dalam variabel, bukan sebaliknya. Dalam hasil PCA komprehensif seseorang harus melaporkan vektor eigen dan memuat, seperti yang ditunjukkan misalnyadi sini atau di sini .

Lihat juga tentang memuat vs vektor eigen.


1


@amoeba, saya tidak bersikeras dan Anda dapat menggunakan terminologi yang biasa Anda gunakan. Saya jelas menjelaskan mengapa saya pikir istilah "memuat" dan "vektor eigen" lebih baik untuk tetap terpisah. Saya mengikuti tradisi klasik, seperti di Harman. Analisis Faktor Modern, kalau saja saya mengingat tradisi dengan benar.
ttnphns

(Lanj.) Bagaimanapun, Anda tahu sendiri bahwa istilah "memuat", meskipun benar-benar sangat meragukan, tidak dapat dipadukan dengan "vektor eigen" dalam analisis multivariat lainnya, misalnya analisis diskriminan, misalnya. Sekali lagi, seperti yang saya sebutkan, di PCA memuat 1) memasukkan info tentang besarnya variasi; 2) Apakah kovarian / korelasi, dan karena itu digunakan untuk interpretasi. Nilai vektor eigen - tidak.
ttnphns

2
+1 Saya telah membaca posting Anda di PCA dan masalah terkait lainnya, dan banyak belajar.
Antoni Parellada

29

OK, jawaban yang sepenuhnya non-matematika:

Jika Anda memiliki banyak variabel pada banyak subjek dan Anda ingin menguranginya ke sejumlah kecil variabel pada subjek yang sama, sambil kehilangan informasi sesedikit mungkin, maka PCA adalah salah satu alat untuk melakukan ini.

Ini berbeda dari analisis faktor, meskipun mereka sering memberikan hasil yang serupa, dalam hal FA mencoba untuk memulihkan sejumlah kecil variabel laten dari sejumlah besar variabel yang diamati yang diyakini terkait dengan variabel laten.


Hai Peter! Senang melihatmu di sini. Ini benar-benar bagus, sederhana, tidak ada jawaban matematika.
JD Long

3
+1 untuk menyebutkan FA, yang tampaknya tidak didiskusikan orang lain, dan yang tampaknya menjadi alasan beberapa orang untuk berbaur.
gung

Tampaknya tidak ada perbedaan dalam tujuan PCA dan FA - keduanya bertujuan untuk memutar sehingga Anda dapat melihat faktor yang paling penting (vektor laten, atau eigendimensi atau vektor tunggal atau apa pun). Tetapi FA tampaknya bukan algoritma tetapi keluarga teknik terkait (satu sama lain dan SVD dan PCA) dengan tujuan yang tidak jelas (yaitu beragam dan tidak konsisten, sehingga varian berbeda 'mengoptimalkan' hal-hal yang berbeda).
David MW Powers

Apakah benar mengatakan bahwa PCA adalah salah satu dari banyak cara yang memungkinkan untuk melakukan analisis faktor?
abalter

Terminologi di bidang ini sangat tidak konsisten.
Peter Flom

29

Matematika paling mudah dilakukan dalam 2-D.

Setiap matriks berhubungan dengan transformasi linear. Transformasi linier dapat divisualisasikan dengan mengambil sosok yang mudah diingat di pesawat dan melihat bagaimana sosok itu terdistorsi oleh transformasi linear:

transformasi linear (foto: Flanigan & Kazdan )

  • vektor eigen mona lisasheSebuahr
  • ×1
  • Sepakbola PCA
    1=23%[1]+46%[2]+39%[3]

f(Sebuahx+by)=Sebuahf(x)+bf(y)+ diberi arti baru, atau jika Sebuah dan b berasal dari bidang yang menarik, atau x dan ydari ruang yang menarik. Sebagai contoh :

wajah

PCA sendiri adalah contoh lain, yang paling akrab bagi ahli statistik. Beberapa jawaban lain seperti Freya memberikan aplikasi PCA dunia nyata .

Saya merasa sangat mengejutkan bahwa sesuatu yang sederhana seperti "rotasi" dapat melakukan banyak hal di berbagai bidang, seperti mengantre produk untuk sistem rekomendasi. -----mirip gimana?menjelaskan konflik geopolitik. Tetapi mungkin tidak begitu mengejutkan jika Anda berpikir tentang fisika, di mana memilih dasar yang lebih baik (misalnya membuatx sumbu arah gerak daripada 42.8%[x]57.2%[y] akan mengubah persamaan yang tidak dapat dipahami menjadi yang sederhana).


2
Sebenarnya itu adalah semacam kebetulan bahwa rotasi itu linier dan jadi cara yang mudah untuk menggambarkan apa yang terjadi untuk data non-geometrik. Kebetulan terkait dengan sifat kuadrat dari kedua ruang Cartesian / Euclidean dan Central Limit Theorem / Gaussians. Yaitu. sigma bertambah secara kuadratik seperti dimensi ortogonal, yang merupakan tempat terminologi rotasi / ortogonal ND kami berasal dari analogi dengan ruang 2D dan 3D.
David MW Powers

@DavidMWPower Menarik. Saya berpikir tentang rotasi dari sudut pandang linear-aljabar.
isomorfisma

27

Setelah posting yang sangat baik oleh JD Long di utas ini, saya mencari contoh sederhana, dan kode R diperlukan untuk menghasilkan PCA dan kemudian kembali ke data asli. Itu memberi saya beberapa intuisi geometri tangan pertama, dan saya ingin berbagi apa yang saya dapatkan. Dataset dan kode dapat secara langsung disalin dan ditempelkan ke R form Github .

Saya menggunakan kumpulan data yang saya temukan online pada semikonduktor di sini , dan saya memangkasnya menjadi hanya dua dimensi - "nomor atom" dan "titik lebur" - untuk memfasilitasi perencanaan.


Sebagai peringatan, idenya murni menggambarkan proses komputasi: PCA digunakan untuk mengurangi lebih dari dua variabel menjadi beberapa komponen utama turunan, atau untuk mengidentifikasi collinearity juga dalam kasus beberapa fitur. Jadi itu tidak akan menemukan banyak aplikasi dalam kasus dua variabel, juga tidak akan ada kebutuhan untuk menghitung vektor eigen dari matriks korelasi seperti yang ditunjukkan oleh @amoeba.


Selanjutnya, saya memotong pengamatan dari 44 menjadi 15 untuk memudahkan tugas melacak setiap poin. Hasil akhirnya adalah kerangka data kerangka ( dat1):

compounds   atomic.no      melting.point
AIN         10             498.0
AIP         14             625.0
AIAs        23             1011.5
...         ...            ... 

Kolom "senyawa" menunjukkan konstitusi kimia semikonduktor, dan memainkan peran nama baris.

Ini dapat direproduksi sebagai berikut (siap untuk menyalin dan menempel pada konsol R):

dat              <- read.csv(url("http://rinterested.github.io/datasets/semiconductors"))
colnames(dat)[2] <- "atomic.no"
dat1             <- subset(dat[1:15,1:3])
row.names(dat1)  <- dat1$compounds
dat1             <- dat1[,-1]

Data kemudian diskalakan:

X <- apply(dat1, 2, function(x) (x - mean(x)) / sd(x))
# This centers data points around the mean and standardizes by dividing by SD.
# It is the equivalent to `X <- scale(dat1, center = T, scale = T)`  

Langkah-langkah aljabar linier mengikuti:

C <- cov(X)                                           # Covariance matrix (centered data)

[at_nomelt_pat_no10,296melt_p0,2961]

Fungsi korelasi cor(dat1)memberikan output yang sama pada data non-skala dengan fungsi cov(X)pada data yang diskalakan.

lambda        <- eigen(C)$values                      # Eigenvalues
lambda_matrix <- diag(2)*eigen(C)$values              # Eigenvalues matrix

[λPC1λPC21.296422000,7035783]

e_vectors     <- eigen(C)$vectors                     # Eigenvectors

12[PC1PC2111-1]

Karena vektor eigen pertama awalnya kembali sebagai [-0,7,-0,7] kami memilih untuk mengubahnya [0,7,0,7] untuk membuatnya konsisten dengan formula bawaan melalui:

e_vectors[,1] = - e_vectors[,1]; colnames(e_vectors) <- c("PC1","PC2")

Nilai eigen yang dihasilkan adalah 1.2964217 dan 0,7035783. Dalam kondisi yang kurang minimalis, hasil ini akan membantu memutuskan vektor eigen mana yang akan dimasukkan (nilai eigen terbesar). Misalnya, kontribusi relatif dari nilai eigen pertama adalah64.8%: eigen(C)$values[1]/sum(eigen(C)$values) * 100, artinya akun itu65%dari variabilitas dalam data. Variabilitas dalam arah vektor eigen kedua adalah35.2%. Ini biasanya ditunjukkan pada plot scree yang menggambarkan nilai nilai eigen:

masukkan deskripsi gambar di sini

Kami akan menyertakan kedua vektor eigen mengingat ukuran kecil dari kumpulan data mainan ini, memahami bahwa mengecualikan salah satu vektor eigen akan menghasilkan pengurangan dimensi - ide di balik PCA.

The matriks skor ditentukan sebagai perkalian matriks dari data yang skala ( X) dengan matriks vektor eigen (atau "rotasi") :

score_matrix <-  X %*% e_vectors    
# Identical to the often found operation: t(t(e_vectors) %*% t(X))

Konsep ini memerlukan kombinasi linier dari setiap entri (baris / subjek / pengamatan / superkonduktor dalam kasus ini) dari data terpusat (dan dalam kasus ini diskalakan) ditimbang oleh baris masing-masing vektor eigen , sehingga di setiap kolom akhir dari skor matrix, kita akan menemukan kontribusi dari setiap variabel (kolom) dari data (keseluruhan X), TAPI hanya vektor eigen yang sesuai yang akan mengambil bagian dalam perhitungan (yaitu vektor eigen pertama[0,7,0,7]T akan berkontribusi PC1 (Komponen Utama 1) dan [0,7,-0,7]T untuk PC2, seperti dalam:

masukkan deskripsi gambar di sini

Oleh karena itu setiap vektor eigen akan mempengaruhi masing-masing variabel secara berbeda, dan ini akan tercermin dalam "pemuatan" PCA. Dalam kasus kami, tanda negatif pada komponen kedua vektor eigen kedua[0,7,-0,7] akan mengubah tanda nilai titik lebur dalam kombinasi linear yang menghasilkan PC2, sedangkan efek vektor eigen pertama akan secara konsisten positif:

masukkan deskripsi gambar di sini

Vektor eigen diskalakan ke 1:

> apply(e_vectors, 2, function(x) sum(x^2))
PC1 PC2 
  1   1 

sedangkan ( memuat ) adalah vektor eigen yang diskalakan oleh nilai eigen (meskipun ada terminologi yang membingungkan dalam fungsi R built-in yang ditampilkan di bawah). Akibatnya, beban dapat dihitung sebagai:

> e_vectors          %*% lambda_matrix
          [,1]      [,2]
[1,] 0.9167086  0.497505
[2,] 0.9167086 -0.497505

> prcomp(X)$rotation %*% diag(princomp(covmat = C)$sd^2)
                   [,1]      [,2]
atomic.no     0.9167086  0.497505
melting.point 0.9167086 -0.497505

Sangat menarik untuk dicatat bahwa cloud data yang diputar (plot skor) akan memiliki varian di sepanjang setiap komponen (PC) yang sama dengan nilai eigen:

> apply(score_matrix, 2, function(x) var(x))
       PC1        PC2 
53829.7896   110.8414 
> lambda
[1] 53829.7896   110.8414

Memanfaatkan fungsi bawaan, hasilnya dapat direplikasi:

# For the SCORE MATRIX:
  prcomp(X)$x
# or...
  princomp(X)$scores # The signs of the PC 1 column will be reversed.

# and for EIGENVECTOR MATRIX:
  prcomp(X)$rotation
# or...
  princomp(X)$loadings

# and for EIGENVALUES:
  prcomp(X)$sdev^2
# or...
  princomp(covmat = C)$sd^2

Atau, dekomposisi nilai singular (UΣVT) metode dapat diterapkan untuk menghitung PCA secara manual; sebenarnya, ini adalah metode yang digunakan di prcomp(). Langkah-langkahnya bisa dijabarkan sebagai:

svd_scaled_dat <-svd(scale(dat1))
eigen_vectors <- svd_scaled_dat$v
eigen_values <- (svd_scaled_dat$d/sqrt(nrow(dat1) - 1))^2
scores<-scale(dat1) %*% eigen_vectors

Hasilnya ditunjukkan di bawah ini, dengan pertama, jarak dari masing-masing titik ke vektor eigen pertama, dan pada plot kedua, jarak ortogonal ke vektor eigen kedua:

masukkan deskripsi gambar di sini

Jika sebaliknya kita merencanakan nilai matriks skor (PC1 dan PC2) - tidak lagi "melting.point" dan "atomic.no", tetapi benar-benar perubahan basis titik yang dikoordinasikan dengan vektor eigen sebagai basis, jarak ini akan menjadi diawetkan, tetapi secara alami akan menjadi tegak lurus terhadap sumbu xy:

masukkan deskripsi gambar di sini

Caranya sekarang adalah memulihkan data asli . Poin telah ditransformasikan melalui perkalian matriks sederhana dengan vektor eigen. Sekarang data diputar kembali dengan mengalikannya dengan kebalikan dari matriks vektor eigen dengan perubahan ditandai yang dihasilkan di lokasi titik data. Misalnya, perhatikan perubahan titik merah muda "GaN" di kuadran kiri atas (lingkaran hitam di plot kiri, di bawah), kembali ke posisi awalnya di kuadran kiri bawah (lingkaran hitam di plot kanan, di bawah).

Sekarang kami akhirnya mengembalikan data asli ke dalam matriks "de-rotated" ini:

masukkan deskripsi gambar di sini

Di luar perubahan koordinat rotasi data dalam PCA, hasilnya harus ditafsirkan, dan proses ini cenderung melibatkan biplot , di mana titik-titik data diplot sehubungan dengan koordinat vektor eigen baru, dan variabel asli sekarang ditumpangkan sebagai vektor. Sangat menarik untuk mencatat kesetaraan dalam posisi titik antara plot di baris kedua dari grafik rotasi di atas ("Skor dengan sumbu xy = vektor Eigen") (di sebelah kiri di plot yang mengikuti), dan biplot(ke Baik):

masukkan deskripsi gambar di sini

Superimposisi variabel asli sebagai panah merah menawarkan jalur untuk interpretasi PC1sebagai vektor dalam arah (atau dengan korelasi positif) dengan keduanya atomic nodan melting point; dan PC2sebagai komponen sepanjang peningkatan nilai atomic notetapi berkorelasi negatif dengan melting point , konsisten dengan nilai-nilai vektor eigen:

PCA$rotation
                    PC1        PC2
atomic.no     0.7071068  0.7071068
melting.point 0.7071068 -0.7071068

Tutorial interaktif oleh Victor Powell ini memberikan umpan balik segera mengenai perubahan vektor eigen saat awan data diubah.


1
+1 untuk upaya dan khususnya untuk animasi! Tetapi kita harus ingat bahwa PCA pada matriks korelasi dua variabel adalah sedikit kasus khusus karena semua matriks korelasi dua variabel memiliki vektor eigen yang identik : salah satunya akan selalu [0,7 0,7] (0,7 menjadi 1 / sqrt (2)). Ini bukan kasus untuk matriks kovarian, atau untuk matriks korelasi dalam dimensi yang lebih tinggi.
amoeba

14

Dari seseorang yang telah banyak menggunakan PCA (dan mencoba menjelaskannya kepada beberapa orang juga) inilah contoh dari bidang ilmu saraf saya sendiri.

Ketika kami merekam dari kulit kepala seseorang, kami melakukannya dengan 64 elektroda. Jadi, sebenarnya kita memiliki 64 angka dalam daftar yang mewakili tegangan yang dilepaskan oleh kulit kepala. Sekarang karena kita merekam dengan presisi mikrodetik, jika kita memiliki eksperimen 1 jam (seringkali 4 jam) maka itu memberi kita 1e6 * 60 ^ 2 == 3.600.000.000 titik waktu di mana tegangan dicatat pada masing-masing elektroda sehingga sekarang kita memiliki matriks 3.600.000.000 x 64. Karena asumsi utama PCA adalah bahwa variabel Anda berkorelasi, itu adalah teknik yang bagus untuk mengurangi jumlah data yang konyol ini menjadi jumlah yang dapat ditelusuri. Seperti telah dikatakan beberapa kali, nilai eigen mewakili jumlah varians yang dijelaskan oleh variabel (kolom). Dalam hal ini nilai eigen mewakili varians dalam tegangan pada titik waktu tertentu yang dikontribusikan oleh elektroda tertentu. Jadi sekarang kita dapat mengatakan, "Oh, elektrodaxpada titik waktu yadalah apa yang harus kita fokuskan untuk analisis lebih lanjut karena di situlah perubahan paling terjadi ". Semoga ini bisa membantu. Mencintai plot regresi itu!


12

Saya mungkin menjadi orang jahat untuk menjawab ini karena saya adalah nenek moyang yang telah menjelaskan konsep itu kepada saya dan tidak lebih, tetapi begini:

Misalkan Anda memiliki populasi. Sebagian besar penduduk mati karena serangan jantung. Anda mencoba mencari tahu apa yang menyebabkan serangan jantung.

Anda memiliki dua bagian data: tinggi dan berat.

Sekarang, jelas bahwa ada BEBERAPA hubungan antara berat dan serangan jantung, tetapi korelasinya tidak terlalu kuat. Ada beberapa orang berat yang mengalami banyak serangan jantung, tetapi beberapa tidak.

Sekarang, Anda melakukan PCA, dan ia memberi tahu Anda bahwa berat dibagi dengan tinggi badan ('massa tubuh') adalah kemungkinan yang jauh lebih besar untuk memprediksi serangan jantung daripada berat atau tinggi badan, karena, lihatlah, "kenyataan" adalah bahwa massa tubuh yang menyebabkan serangan jantung.

Pada dasarnya, Anda melakukan PCA karena Anda mengukur banyak hal dan Anda tidak benar-benar tahu apakah itu benar-benar komponen utama atau jika ada beberapa komponen mendasar yang lebih dalam yang tidak Anda ukur.

[Silakan mengedit ini jika benar-benar tidak sesuai. Saya benar-benar tidak memahami konsep ini lebih dalam dari ini].


1
Selamat datang di situs statistik @ Joel! Jika Anda mendapat kesempatan, Anda juga dapat berkontribusi dalam diskusi tentang proyek analisis data StackExchange yang kami usulkan: stats.stackexchange.com/questions/2512/… .
Shane

9
Contoh yang sangat baik, tetapi secara teknis PCA tidak dapat menemukan penjelasan massa tubuh karena hanya dapat menemukan penjelasan linier, yaitu jumlah tertimbang dari variabel asli. Namun, jika Anda mengambil log dari variabel input Anda, rasio menjadi perbedaan, dan jika itu adalah penjelasan yang tepat, PCA akan dapat menemukannya.
David MW Powers

10

Ini satu untuk Nenek:

Di kota kami ada jalan-jalan ke utara dan selatan, beberapa pergi ke timur dan barat, dan bahkan beberapa ke barat laut dan tenggara, beberapa NE ke SW. Suatu hari seorang pria mengukur semua lalu lintas di semua jalan, ia menemukan bahwa sebagian besar lalu lintas berjalan secara diagonal, dari barat laut ke tenggara, yang terbesar kedua adalah tegak lurus dengan ini menuju timur laut ke barat daya dan sisanya sisanya cukup kecil. Jadi dia menggambar sebuah kotak besar dan menempatkan garis besar ke kiri dan mengatakan itu adalah NW ke SE, kemudian menggambar garis lain secara vertikal naik dan turun melalui tengah. Dia mengatakan itu adalah arah lalu lintas paling ramai kedua (NE ke SW). Sisanya kecil sehingga bisa diabaikan.

Garis kanan kiri adalah vektor eigen pertama dan garis bawah adalah vektor eigen kedua. Jumlah total mobil ke kiri dan kanan adalah nilai eigen pertama dan yang naik dan turun adalah nilai eigen kedua.


1
Analogi ini tampaknya rusak saat diperiksa. Bagaimana jika arah lalu lintas terbesar dan kedua tidak ortogonal? Bagaimana analogi Anda membantu kami memahami PCA dalam kasus seperti itu?
whuber

Saya kira nenek mengerti apa arti ortogonal? Ya, ada beberapa kekurangan di sana tapi itu awal. Saya pikir itu bagus karena ada begitu banyak jawaban di sini.
BajaBob

2
Apakah "nenek" mengerti pos atau tidak, itu harus cukup jelas dan benar. Analogi Anda tampaknya tidak mencapai salah satu dari tujuan itu. Itu mungkin karena saya tidak mengerti analoginya: Saya tidak bisa menghubungkannya dengan PCA apa atau tidak. Mungkin Anda bisa mengklarifikasi bagaimana analogi ini bekerja sehingga pembaca lain tidak menjadi sama bingungnya dengan saya.
whuber

Fakta bahwa mereka tidak ortogonal berarti Anda membutuhkan ICA atau FA bukan PCA. Jika nenek menonton Star Trek (ya dia generasi itu) ketika mereka menunjukkan kapal yang cacat pada sudut - PCA akan cenderung untuk memulihkan pesawat referensi yang relevan dengan skala dan tampilan (pesawat galaksi atau kapak kapal).
David MW Powers

-1. Saya setuju dengan @whuber bahwa analogi ini tidak berfungsi. Apa yang seharusnya menjadi data di sini, dari matriks kovarian apa "vektor eigen" ini? Saya tidak mengerti sama sekali.
amoeba

10

Jawaban ini memberikan interpretasi intuitif dan bukan matematis:

PCA akan memberi Anda satu set vektor ortogonal dalam awan titik dimensi tinggi. Urutan vektor ditentukan oleh informasi yang disampaikan setelah memproyeksikan semua titik ke vektor.

Dengan kata lain: Vektor komponen utama pertama akan memberi tahu Anda paling banyak tentang titik cloud setelah memproyeksikan semua titik ke vektor. Tentu saja ini adalah interpretasi yang intuitif.

Lihatlah ellipsoid ini (ikuti tautan untuk model 3D) :

masukkan deskripsi gambar di sini

Jika Anda harus memilih satu vektor yang membentuk sub-ruang satu dimensi di mana titik-titik titik ellipsoid akan diproyeksikan. Yang mana yang akan Anda pilih karena menyampaikan informasi paling banyak tentang set asli dalam 3 dimensi?

Saya kira yang merah di sepanjang sumbu terpanjang. Dan ini sebenarnya komponen utama yang dihitung 1! Yang berikutnya - saya akan memilih yang biru sepanjang sumbu terpanjang berikutnya.

Biasanya Anda ingin memproyeksikan sekumpulan titik dari ruang dimensi tinggi ke bidang dua dimensi atau ke ruang tiga dimensi .

masukkan deskripsi gambar di sini


http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/


10

Meskipun ada banyak contoh yang diberikan untuk memberikan pemahaman intuitif tentang PCA, fakta itu hampir dapat membuatnya lebih sulit untuk dipahami pada awalnya, setidaknya bagi saya.

"Apa satu hal tentang PCA yang dimiliki oleh semua contoh berbeda dari disiplin ilmu yang berbeda ??"

Apa yang membantu saya secara intuitif memahami adalah beberapa persamaan matematika, karena jelas matematika adalah bagian yang mudah bagi Anda, meskipun ini tidak membantu menjelaskannya kepada nenek Anda ...

Pikirkan masalah regularisasi, coba dapatkan

||XB-Y||=0

Atau dalam bahasa Inggris, uraikan data Anda Ymenjadi dua matriks lain yang entah bagaimana akan menjelaskan data? Jika dua matriks tersebut bekerja dengan baik, maka kesalahan antara mereka danY tidak boleh terlalu banyak.

PCA memberi Anda faktorisasi yang bermanfaat Y, untuk semua alasan yang dikatakan orang lain. Ini memecah matriks data yang Anda miliki,Y, turun menjadi dua matriks bermanfaat lainnya. Pada kasus ini,X akan menjadi matriks tempat kolom pertama k PC yang Anda simpan, dan B adalah matriks yang memberi Anda resep untuk merekonstruksi kolom matriks Y menggunakan kolom X. B adalah yang pertama k barisan S, dan semuanya Vmengubah urutan. Nilai eigen di diagonal dariSpada dasarnya, bobot PC mana yang paling penting. Begitulah cara matematika secara eksplisit memberi tahu Anda PC mana yang paling penting: masing-masing dibobot oleh nilai eigennya. Lalu, matriksVT memberitahu PC bagaimana cara menggabungkan.

Saya pikir orang memberikan banyak contoh intuitif, jadi saya hanya ingin membagikannya. Melihat itu membantu saya memahami cara kerjanya. Ada dunia algoritma dan metode menarik yang melakukan hal serupa dengan PCA. Pengkodean jarang adalah subbidang pembelajaran mesin yang semuanya tentang matriks anjak piutangSEBUAH menjadi dua yang bermanfaat dan menarik yang mencerminkan pola dalam SEBUAH.


9

Ini jawaban matematika: komponen utama pertama adalah dimensi data terpanjang. Lihatlah dan tanyakan: di mana data terluas? Itu komponen pertama. Komponen selanjutnya adalah tegak lurus. Jadi cerutu data memiliki panjang dan lebar. Masuk akal untuk apa pun yang agak lonjong.


6
Sayangnya, kebenaran jawaban ini tergantung pada bagaimana ekspresi samar "terpanjang" ditafsirkan. Banyak interpretasi alami dan relevan, seperti diameter , akan salah.
whuber

PCA sebenarnya bekerja cukup baik dengan berbagai jenis cara alami untuk mengukur dimensi / ukuran. Anda hanya perlu mengganti matriks kovarians dengan matriks untuk mengukur "dimensi" ke segala arah (matriks hanya perlu didefinisikan positif, atau simetris.) Ini seperti QuickSort bekerja untuk operator pemesanan yang berbeda, tetapi Anda akan mendapatkan hasil yang berbeda untuk operator pemesanan yang berbeda.
James LI

9

Cara saya memahami komponen utama adalah ini: Data dengan berbagai variabel (tinggi, berat, usia, suhu, panjang gelombang, persentase kelangsungan hidup, dll) dapat disajikan dalam tiga dimensi untuk plot keterkaitan.

Sekarang jika Anda ingin memahami "data 3D", Anda mungkin ingin mengetahui bidang 2D mana (lintas-bagian) dari data 3D ini yang berisi informasi terbanyak untuk serangkaian variabel tertentu. Pesawat 2D ini adalah komponen utama, yang berisi proporsi setiap variabel.

Pikirkan komponen utama sebagai variabel itu sendiri, dengan karakteristik komposit dari variabel asli (variabel baru ini dapat digambarkan sebagai bagian berat, tinggi bagian, usia bagian, dll). Ketika Anda memplot satu komponen utama (X) terhadap yang lain (Y), yang Anda lakukan adalah membangun peta 2D yang dapat secara geometris menggambarkan korelasi antara variabel asli. Sekarang bagian yang berguna: karena setiap subjek (pengamatan) yang dibandingkan dikaitkan dengan nilai-nilai untuk setiap variabel, subyek (pengamatan) juga ditemukan di suatu tempat di peta XY ini. Lokasi mereka didasarkan pada kontribusi relatif dari masing-masing variabel mendasar (yaitu satu pengamatan mungkin sangat dipengaruhi oleh usia dan suhu, sedangkan yang lain mungkin lebih dipengaruhi oleh tinggi dan berat badan).


8

Saya akan memberikan respons non-matematika dan pandangan burung-mata yang lebih rinci tentang motivasi-melalui-matematika di bagian kedua.


Non-Mathy:

Penjelasan non-matematika adalah bahwa PCA membantu untuk data dimensi tinggi dengan membiarkan Anda melihat ke arah mana data Anda memiliki varian yang paling banyak. Arahan ini adalah komponen utama . Setelah Anda memiliki informasi ini, Anda kemudian dapat, dalam beberapa kasus, memutuskan untuk menggunakan komponen utama sebagai variabel yang bermakna itu sendiri, dan sangat mengurangi dimensi data Anda dengan hanya menjaga komponen utama dengan varian yang paling banyak ( kekuatan penjelas) ).

Sebagai contoh, misalkan Anda memberikan kuesioner jajak pendapat politik dengan 30 pertanyaan, masing-masing dapat diberikan respons 1 ( sangat tidak setuju ) hingga 5 ( sangat setuju ). Anda mendapatkan banyak tanggapan dan sekarang Anda memiliki data 30 dimensi dan Anda tidak dapat membuat kepala atau ekor dari itu. Kemudian dengan putus asa Anda berpikir untuk menjalankan PCA dan menemukan 90% varians Anda berasal dari satu arah, dan arah itu tidak sesuai dengan salah satu sumbu Anda. Setelah pemeriksaan lebih lanjut dari data Anda kemudian menyimpulkan bahwa sumbu hibrida baru ini sesuai dengan spektrum kiri-kanan politik yaitu spektrum demokrat / republik, dan melanjutkan untuk melihat aspek yang lebih halus dalam data.


Mathy:

Terkadang membantu untuk memperkecil dan melihat motivasi matematika untuk menjelaskan makna.

Ada keluarga matriks khusus yang dapat diubah menjadi matriks diagonal hanya dengan mengubah sumbu koordinat Anda. Tentu saja, mereka disebut matriks yang dapat didiagonalisasi dan cukup elegan, sumbu koordinat baru yang diperlukan untuk melakukan ini memang vektor eigen.

Ternyata matriks kovariansnya simetris dan akan selalu dapat didiagonalisasi ! Dalam hal ini vektor eigen disebut komponen utama dan ketika Anda menuliskan matriks kovarians dalam koordinat vektor eigen, entri diagonal (satu-satunya yang tersisa) sesuai dengan varians dalam arah vektor eigen Anda. Ini memungkinkan kita untuk mengetahui arah mana yang memiliki varian paling banyak. Selain itu karena matriks kovarians diagonal dalam koordinat ini, Anda telah dengan cerdik menghilangkan semua korelasi antara variabel Anda.

Seperti yang biasa dalam aplikasi praktis, kami mengasumsikan bahwa variabel kami terdistribusi normal dan sangat wajar untuk mencoba dan mengubah koordinat kami untuk melihat gambar paling sederhana. Dengan mengetahui komponen utama Anda dan nilai eigen masing-masing (varians) Anda akan dapat mengurangi dimensi data Anda jika diperlukan dan juga memiliki ringkasan umum cepat di mana variasi dalam data Anda berada.

Tetapi pada akhir hari, akar dari semua keinginan ini berasal dari fakta bahwa matriks diagonal yang cara mudah untuk menangani dibandingkan dengan rancu mereka, sepupu yang lebih umum.


2
Terima kasih atas kontribusi anda. Tampaknya untuk mengatasi interpretasi sempit PCA yang tidak perlu. (1) PCA telah berhasil diterapkan pada kumpulan data yang sangat non-Gaussian. (2) PCA bukan prosedur parametrik formal; mungkin lebih baik untuk menganggapnya sebagai eksplorasi dalam roh. (3) Semua matriks kovarian, dari segala jenis distribusi atau data multivariat, dapat didiagonalisasi. Baik Gaussianity (Normalitas) maupun non-degenerasi adalah persyaratan. (Simetri matriks dan memiliki komponen nyata menjamin kemampuan didiagonalisasi .)
whuber

Harus saya akui, saya malu telah lupa, tetapi poin bagus tentang matriks kovarians dapat didiagonalisasi secara umum. Saya akan mengedit untuk mencerminkan itu. Juga, bisakah Anda menguraikan poin (2)? Saya tidak terbiasa dengan perbedaan antara prosedur parametrik atau non-parametrik.
Christian Bueno

7

Saya melihat PCA sebagai alat geometris. Jika Anda diberi banyak poin dalam 3-ruang yang hampir semuanya pada garis lurus, dan Anda ingin mengetahui persamaan garis itu, Anda mendapatkannya melalui PCA (ambil komponen pertama). Jika Anda memiliki banyak titik dalam 3-ruang yang sebagian besar planar, dan ingin menemukan persamaan bidang itu, lakukan melalui PCA (ambil vektor komponen yang paling tidak signifikan dan yang seharusnya normal pada bidang).


7

Mengapa begitu nilai eigen / vektor eigen?

Saat melakukan PCA, Anda ingin menghitung beberapa basis ortogonal dengan memaksimalkan varians yang diproyeksikan pada setiap vektor basis.

Setelah menghitung vektor basis sebelumnya, Anda ingin yang berikutnya adalah:

  • ortogonal dengan sebelumnya
  • norma 1
  • memaksimalkan varians yang diproyeksikan, yaitu dengan norma kovarians maksimal

Ini adalah masalah optimisasi terbatas, dan pengganda Lagrange (ini untuk intuisi geometris, lihat halaman wikipedia) memberi tahu Anda bahwa gradien tujuan (varian yang diproyeksikan) dan kendala (norma unit) harus "paralel" pada optimium.

Ini sama dengan mengatakan bahwa vektor basis berikutnya harus menjadi vektor eigen dari matriks kovarians. Pilihan terbaik di setiap langkah adalah memilih yang memiliki nilai eigen terbesar di antara yang lainnya.


5
Jelas bukan penjelasan kepada orang awam - vektor basis ortogonal? memaksimalkan varians proyeksi? masalah optimasi terkendala? Pengganda lagrange? Ini adalah istilah yang sangat "jargonised". Perlihatkan orang awam yang mengerti apa arti semua ini dan saya akan menunjukkan kepada Anda seorang ahli matematika / ahli statistik
probabilityislogic

6

Pada dasarnya PCA menemukan variabel baru yang merupakan kombinasi linear dari variabel asli sehingga dalam ruang baru, data memiliki dimensi yang lebih sedikit. Pikirkan kumpulan data yang terdiri dari titik-titik dalam 3 dimensi pada permukaan pelat datar yang ditegangkan pada sudut tertentu. Dalam sumbu x, y, z asli Anda memerlukan 3 dimensi untuk mewakili data, tetapi dengan transformasi linear yang tepat, Anda hanya perlu 2.

Pada dasarnya apa yang dikatakan @ Joel, tetapi hanya kombinasi linear dari variabel input.


6

Beberapa waktu lalu saya mencoba memahami algoritma PCA ini dan saya ingin membuat catatan tentang vektor eigen dan nilai eigen. Dokumen itu menyatakan bahwa tujuan EVs adalah untuk mengubah model dari model berukuran besar ke model berukuran sangat kecil.

Sebagai contoh, alih-alih membangun jembatan ukuran penuh terlebih dahulu dan kemudian melakukan percobaan dan tes di atasnya, dimungkinkan untuk menggunakan EV untuk membuat jembatan berukuran sangat kecil di mana semua faktor / jumlah akan dikurangi dengan margin yang sama dan terlebih lagi hasil aktual dari tes dan tes terkait stres yang dilakukan dapat dihitung dan diperbesar sesuai kebutuhan untuk model asli. Dengan cara EV membantu menciptakan abstrak dari aslinya .

Bagi saya, penjelasan ini memiliki makna mendalam terhadap apa yang saya coba lakukan! Semoga ini membantu Anda juga!


-1. Mungkin saya tidak sepenuhnya menghargai analogi ini, tetapi itu terlihat sangat menyesatkan bagi saya. PCA memang (dengan cara tertentu) memungkinkan untuk "mengubah" model "besar" menjadi model "kecil", tetapi ia melakukannya dengan mengurangi dimensi dari dataset. Tapi bagaimana jembatan kecil dengan dimensi lebih rendah dari yang besar ?! Keduanya 3D, bukan.
amoeba

@amoeba: ekstrak ini dari kertas yang saya baca, ini bukan kata-kata saya. Saya belum mempelajari topik ini sejak lama sekarang dan saya telah kehilangan jejak.
Rorschach

6

Bayangkan nenek baru saja mengambil foto dan film pertamanya di kamera digital yang Anda berikan untuk Natal, sayangnya dia menjatuhkan tangan kanannya ketika dia menekan tombol untuk foto, dan dia sedikit bergetar selama film juga. Dia memperhatikan bahwa orang-orang, pohon, pagar, bangunan, pintu, perabot, dll. Tidak lurus ke atas dan ke bawah, tidak vertikal, dan bahwa lantai, tanah, laut, cakrawala tidak horizontal dengan baik, dan film-filmnya juga agak goyah. Dia bertanya apakah Anda dapat membantunya memperbaikinya, semua 3000 foto liburan dan sekitar 100 video di rumah dan pantai (dia orang Australia), membuka hadiah, berjalan-jalan di pedesaan. Dia punya perangkat lunak foto yang memungkinkan Anda melakukan itu, katanya. Anda mengatakan kepadanya bahwa itu akan memakan waktu berhari-hari, dan bagaimanapun juga tidak akan berfungsi pada video, tetapi Anda tahu teknik yang disebut PCA dan ICA yang mungkin membantu. Anda menjelaskan bahwa penelitian Anda sebenarnya hanya melibatkan rotasi data ke dimensi alami, bahwa teknik ini menemukan arah paling penting dalam data, foto dalam kasus ini, dan memutar sehingga yang paling penting adalah horisontal, yang kedua adalah vertikal (dan bahkan dapat berlangsung untuk dimensi lebih banyak kita tidak dapat membayangkan dengan baik, walaupun waktu juga merupakan dimensi dalam film).

-

Selain Teknis. Bahkan, Anda mungkin bisa mendapatkan PhD Anda melakukan ini untuknya, dan ada makalah penting oleh Bell dan Sejnowski (1997) tentang komponen independen gambar yang sesuai dengan tepi. Untuk mengaitkan ini dengan PCA: ICA menggunakan PCA atau SVD sebagai langkah pertama untuk mengurangi dimensi dan perkiraan awal, tetapi kemudian memperbaikinya yang memperhitungkan tidak hanya kesalahan urutan kedua (SSE) seperti PCA, tetapi kesalahan urutan tinggi - jika itu benar ICA, semua pesanan lebih tinggi, meskipun banyak algoritma membatasi diri ke 3 atau 4. Komponen PCA urutan rendah cenderung sangat dipengaruhi oleh horizontal dan vertikal. Berurusan dengan gerakan kamera untuk film juga dapat menggunakan PCA / ICA. Baik untuk foto 2D dan film 2½D Anda memerlukan beberapa trik representasional untuk mencapainya.

Aplikasi lain yang dapat Anda jelaskan kepada nenek adalah eigenfaces - vektor eigen tingkat tinggi dapat mendekati '7 emosi dasar' (rata-rata wajah untuk masing-masing dan 'skala rotasi' atau kombinasi linear untuk melakukan hal itu rata-rata), tetapi sering kita menemukan komponen yang terkait jenis kelamin dan ras, dan beberapa mungkin membedakan individu atau fitur individu (kacamata, jenggot, dll.). Inilah yang terjadi jika Anda memiliki beberapa foto dari satu individu dan banyak emosi / ekspresi, tetapi Anda mendapatkan bias yang berbeda jika Anda memiliki banyak wajah dengan ekspresi netral. Menggunakan ICA bukan PCA tampaknya tidak banyak membantu untuk emosi dasar, tetapi Bartlett dan Sejnowsiki (1997) menunjukkan bahwa ia menemukan fitur yang berguna untuk pengenalan wajah.


1
Saya menghargai upaya untuk berkomunikasi dengan contoh dan dengan analogi. Namun, penggunaan gambar sangat disayangkan karena kemungkinan besar nenek tidak akan mengerti bahwa perasaan Anda "memutar" tidak ada hubungannya dengan benar-benar memutar sumbu gambar , juga dia tidak akan mengerti bahwa Anda menggunakan "dimensi". "Dalam arti abstrak di mana foto memiliki jutaan dimensi dan bukan hanya dua.
Whuber

Ya, Anda perlu menggambarkannya sebagai cloud point, seperti dengan gambar di jawaban lain. Preprocessing dengan beberapa bentuk deteksi tepi dan / atau ambang batas kemungkinan akan menjadi bagian dari "trik" yang saya sebutkan. Tetapi untuk beroperasi pada foto yang kompleks membutuhkan trik PhD.
David MW Powers

@whuber Saya sebenarnya telah menggunakan PCA (juga SVD) untuk menemukan rotasi ini dalam melakukan kalibrasi gambar stereo! Itu pasti adalah rasa rotate yang sama.
David MW Powers

2

Saya pikir semua orang mulai menjelaskan PCA dari ujung yang salah: dari vektor eigen. Jawaban saya dimulai di tempat yang tepat: sistem koordinat. Vektor eigen, dan masalah eigen secara umum, adalah alat matematika yang digunakan untuk mengatasi masalah yang sebenarnya yang merupakan sistem koordinat yang salah. Saya akan jelaskan.

Mari kita mulai dengan sebuah garis. Apa itu garis? Ini adalah objek satu dimensi. Jadi, Anda hanya perlu satu dimensi untuk bergerak dari satu titik ke titik lainnya. Di pesawat meskipun Anda melampirkan dua koordinat setiap titik garis. Itu karena sehubungan dengan garis itu sendiri sistem koordinat dipilih secara sewenang-wenang. Sistem koordinat, saya berpendapat, tidak mencerminkan sifat satu dimensi dari garis. Kalau saja saya akan selalu meletakkan asal-usul sistem koordinat Cartesian saya di telepon, dan memutarnya sehingga sumbu x-nya ada di telepon, maka saya tidak perlu sumbu-y lagi! Semua poin saya ada pada satu sumbu, karena garis adalah objek satu dimensi.

Di situlah penjelasan PCA harus dimulai. Masalah eigen adalah alat yang melakukan rotasi yang saya jelaskan, dan de-makna variabel menempatkan asal ke garis. PCA membantu mengungkap dimensi data yang sebenarnya selama hubungan antar variabel bersifat linier .


1

Ingatlah bahwa vektor eigen adalah vektor yang transformasinya paralel dengan vektor input yang sama. Dengan demikian vektor eigen dengan nilai eigen tinggi berarti bahwa vektor eigen memiliki derajat 'paralelitas' yang tinggi terhadap data, artinya Anda hanya dapat mewakili data dengan vektor ini dan mengharapkan kesalahan rendah dalam representasi baru. Jika Anda memilih vektor eigen tambahan dengan nilai eigen yang lebih rendah, Anda akan dapat mewakili lebih detail data karena Anda akan mewakili 'paralelitas' lainnya - yang tidak sepenting yang pertama karena nilai eigen yang lebih rendah.


0

PCA pada dasarnya adalah proyeksi ruang dimensi tinggi ke ruang dimensi rendah sambil menjaga informasi sebanyak mungkin.

Saya menulis posting blog di mana saya menjelaskan PCA melalui proyeksi teko 3D ...

masukkan deskripsi gambar di sini

... ke pesawat 2D sambil menjaga informasi sebanyak mungkin:

masukkan deskripsi gambar di sini

Rincian dan kode-R lengkap dapat ditemukan di pos:
http://blog.ephorie.de/intuition-for-principal-component-analysis-pca


1
Meskipun gambar, saat ini ini lebih merupakan komentar daripada jawaban. Bisakah Anda mengembangkannya, mungkin dengan memberikan ringkasan informasi di tautan? Tulisan di jaringan SE seharusnya mampu berdiri sendiri.
gung

@ung: cukup adil - intinya adalah bahwa PCA pada dasarnya adalah proyeksi dari ruang dimensi yang lebih tinggi (dalam hal ini 3D-teko) ke ruang dimensi yang lebih rendah (dalam hal ini pesawat 2D) sambil mempertahankan informasi sebanyak mungkin. Akan mengubahnya dalam jawaban.
vonjd

Itu memang benar (& dijelaskan dalam banyak jawaban lain yang ada di utas ini), tetapi umumnya harus ada lebih banyak jawaban yang diposting dalam sistem SE, & mereka harus dapat berdiri sendiri jika, misalnya, tautan terputus.
gung

1
Contoh teko itu menarik. Anda mengatakan bahwa PCA adalah proyeksi ke ruang dimensi yang lebih rendah sambil mempertahankan sebanyak 'informasi'. Tapi .... apa itu informasi? Dalam kasus PCA ini berarti menjaga varians total setinggi mungkin. Contoh teko teh lebih seperti menyatakan bahwa informasi itu "paling terpelihara" dengan menggunakan proyeksi pada bidang tertentu, tetapi ini menjelaskan sedikit bagaimana PCA melakukan ini dan apakah itu juga pilihan 'informasi' terbaik '. Sebagai contoh, LDA juga merupakan proyeksi yang bermaksud untuk menyimpan informasi, tetapi tidak sama dengan PCA.
Martijn Weterings

Jika teko Anda akan lebih bundar / bundar (kurang tinggi) daripada PCA akan 'memilih' persimpangan yang berbeda untuk mempertahankan sebagian besar "informasi".
Martijn Weterings

-4

Mungkin terlambat dalam analisis ini adalah asumsi implisit bahwa data dari kelompok I berbeda dari kelompok II dan orang berusaha untuk menemukan komponen mana yang mungkin menjadi faktor penyumbang utama perbedaan tersebut.

Melakukan analisis PCA yang menghasilkan ellipsoid identik untuk 2 set berbeda kemudian memberi tahu Anda bahwa kedua set tidak berbeda dengan parameter apa pun yang telah Anda ukur.


2
Saya ingin tahu apakah Anda memikirkan MANOVA. Jika Anda menjalankan dua PCA terpisah, Anda hanya akan menunjukkan bahwa struktur korelasinya serupa.
gung

2
-1. Ini adalah jawaban yang sepenuhnya menyesatkan, karena alasan yang diuraikan oleh @gung. Juga, ia bahkan tidak mencoba menjelaskan apa itu PCA.
amoeba
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.