Diterbitkan
Tahukah anda bahawa Analisis Komponen Utama (PCA) merupakan pilihan utama untuk pembelajaran mesin tanpa pengawasan? Kaedah ini memudahkan data perubatan yang kompleks. Ia membantu penyelidik dan petugas penjagaan kesihatan mencari corak tersembunyi dan pandangan penting. Dengan jumlah data perubatan yang semakin meningkat dengan pesat, PCA adalah kunci untuk menjadikan data lebih mudah difahami dan dianalisis.
Pakar dan penyelidik penjagaan kesihatan sedang berhadapan dengan cabaran besar. Mereka perlu memahami banyak data perubatan yang kompleks. PCA menawarkan cara untuk menjadikan data ini lebih mudah. Ia mengurangkan bilangan ciri sambil mengekalkan maklumat yang paling penting. Ini membolehkan pekerja penjagaan kesihatan melihat trend dan corak yang sukar untuk diperhatikan sebelum ini.
Poin-poin utama
- PCA ialah algoritma pembelajaran mesin tanpa pengawasan yang berkuasa digunakan untuk pengurangan dimensi dan penyederhanaan data.
- PCA boleh digunakan pada pelbagai set data perubatan, daripada data ekspresi gen kepada pengimejan perubatan dan rekod pesakit.
- Dengan mengurangkan bilangan pembolehubah sambil mengekalkan maklumat yang paling penting, PCA membantu profesional dan penyelidik penjagaan kesihatan lebih memahami dan mentafsir data perubatan yang kompleks.
- PCA ialah alat serba boleh yang boleh digunakan untuk analisis data penerokaan, pemilihan ciri, dan juga sebagai langkah prapemprosesan untuk algoritma pembelajaran mesin yang lain.
- Memahami prinsip dan aplikasi PCA adalah penting untuk kekal di hadapan dalam dunia yang berkembang pesat analisis data perubatan dan membuat keputusan.
Pengenalan kepada Analisis Komponen Utama
Analisis komponen utama (PCA) merupakan kaedah statistik utama. Ia memudahkan set data yang kompleks dan berdimensi tinggi dengan mencari corak dan trend yang paling penting. Proses ini menukarkan pembolehubah asal kepada pembolehubah baharu yang tidak berkorelasi yang dipanggil komponen utama.
Dengan memberi tumpuan kepada komponen utama , PCA menangkap maklumat utama. Ia juga menghapuskan hingar dan redundansi.
Definisi dan Kepentingan PCA
PCA digunakan secara meluas dalam banyak bidang, seperti pembelajaran mesin, bioinformatik, kewangan dan kajian alam sekitar. Ia penting untuk analisis data. Ia mengoptimumkan algoritma, memperbaik visualisasi data dan membantu kami memahami data kompleks dengan lebih baik.
Dengan mengurangkan dimensi data, PCA mendedahkan struktur, corak dan hubungan tersembunyi. Ini mungkin sukar dilihat dalam data berdimensi tinggi.
Latar Belakang Sejarah PCA
Idea PCA pertama kali diterokai oleh ahli matematik British Karl Pearson pada tahun 1901. Kemudian, ahli statistik dan ekonomi Amerika Harold Hotelling telah membangunkan dan menamakannya pada tahun 1930-an.
PCA dikenali dengan nama yang berbeza dalam pelbagai bidang. Contohnya, ia dipanggil transformasi Hotelling dalam kawalan kualiti multivariat. Dalam pemprosesan isyarat, ia ialah transformasi Karhunen–Loève diskret (KLT). Dalam sains meteorologi, ia dikenali sebagai fungsi ortogon empirikal (EOF).
"PCA ialah alat yang ampuh untuk pengurangan dimensi , membolehkan kita mengekstrak ciri-ciri penting daripada set data yang kompleks sambil memelihara maklumat penting."
Pengurangan dimensi, Eigenvectors
Salah satu matlamat utama Analisis Komponen Utama (PCA) adalah untuk menyelesaikan "kutukan dimensi". Masalah ini bermakna lebih banyak data diperlukan apabila bilangan ciri meningkat. Ini boleh menyebabkan overfitting , menjadikan pengiraan lebih perlahan dan menurunkan ketepatan model pembelajaran mesin. PCA membantu dengan mengurangkan bilangan ciri sambil mengekalkan kebanyakan data asal.
Konsep Pengurangan Dimensi
Mengurangkan dimensi adalah kunci dalam kejuruteraan ciri . Ia membantu mengelakkan kos pengiraan yang tinggi, pemasangan berlebihan dan menjadikan model lebih mudah difahami. Dengan menukar data dimensi tinggi kepada dimensi yang lebih rendah, teknik seperti PCA menemui ciri yang paling penting. Ini membawa kepada prestasi dan kecekapan yang lebih baik dalam bidang seperti analisis data perubatan.
Eigenvectors dan Eigenvalues dalam PCA
Vektor eigen dan nilai eigennya adalah penting dalam PCA. Vektor eigen mengekalkan arahnya apabila diubah, dan nilai eigen menetapkan skalanya. Matriks kovarians mencari komponen utama data. Vektor eigen dan nilai eigen matriks ini menunjukkan arah dan saiz komponen ini.
PCA menggunakan vektor eigen dan nilai eigen untuk mengatasi "kutukan dimensi". Dengan mengaplikasikan konsep-konsep ini, PCA boleh menukar data yang kompleks dan berdimensi tinggi kepada bentuk yang lebih ringkas. Ini menyimpan maklumat yang paling penting, sekali gus menjadikan analisis data dan membuat keputusan lebih baik.
| Konsep | Penerangan Produk |
|---|---|
| Eigenvectors | Vektor yang tidak menukar arah di bawah transformasi linear, sahaja scaling oleh faktor skalar (nilai eigen) |
| Nilai Eigen | Faktor skalar yang menskalakan vektor eigen semasa transformasi linear |
| Matriks Kovarians | Matriks yang menangkap varians dan korelasi dalam set data, digunakan untuk mengira komponen utama dalam PCA |
| Komponen Utama | Paksi ortogon baharu yang dicipta oleh PCA yang mewakili arah varians maksimum dalam data |
"Teknik pengurangan dimensi seperti PCA adalah penting untuk memahami set data berdimensi tinggi yang kompleks, kerana ia boleh mendedahkan ciri yang paling bermakna dan bermaklumat sambil mengurangkan kerumitan pengiraan."
PCA dalam Analisis Data Perubatan
Analisis data perubatan menghadapi cabaran yang unik. Ia sering menangani banyak pembolehubah daripada kajian klinikal. Pembolehubah ini sering berfungsi bersama, menyebabkan multikolineariti . Analisis Komponen Utama (PCA) merupakan kaedah utama untuk menangani isu ini. Ia memudahkan data yang kompleks dengan mengurangkan banyak pembolehubah yang saling berkaitan kepada pembolehubah yang lebih sedikit dan lebih bermakna.
Cabaran dengan Data Perubatan Dimensi Tinggi
Data perubatan berdimensi tinggi mempunyai cabaran besar:
- Multikolineariti: Pembolehubah dalam data perubatan selalunya sangat berkorelasi, membawa kepada isu dalam menilai sumbangan individu setiap peramal.
- Terlalu pasang: Dengan bilangan pembolehubah yang besar dan saiz sampel yang agak kecil, model cenderung untuk melebihkan data latihan, mengurangkan generalisasi mereka kepada data baharu yang tidak kelihatan.
- Sumpahan Dimensi: Apabila bilangan pembolehubah bertambah, data menjadi semakin jarang dalam ruang dimensi tinggi, menjadikannya sukar untuk mengekstrak cerapan yang bermakna.
- Kerumitan Pengiraan: Menganalisis data berdimensi tinggi boleh menjadi intensif secara pengiraan, memerlukan kuasa pemprosesan dan sumber memori yang ketara.
PCA ialah alat berkuasa yang boleh membantu menangani cabaran ini. Ia mengurangkan dimensi data sambil mengekalkan maklumat yang paling penting. Ini menjadikan data lebih mudah untuk difahami dan meningkatkan prestasi analisis dan teknik pemodelan.

"PCA merupakan salah satu kaedah yang paling banyak digunakan untuk menangani masalah multikolineariti dalam kajian klinikal, kerana ia mengurangkan satu set pembolehubah saling berkorelasi kepada beberapa dimensi yang mengumpulkan sejumlah besar kebolehubahan pembolehubah asal."
Algoritma PCA: Penjelasan Langkah demi Langkah
Analisis Komponen Utama (PCA) merupakan kaedah utama untuk mengurangkan data dengan banyak pembolehubah. Ia menukarkan pembolehubah berkorelasi kepada komponen tidak berkorelasi yang dipanggil komponen utama. Mari kita lihat bagaimana algoritma PCA berfungsi langkah demi langkah.
Data Pra Pengolahan
Langkah pertama ialah pra-pemprosesan data . Ini bermakna menyediakan data untuk PCA. Ia melibatkan penolakan min daripada setiap pembolehubah dan penskalaannya untuk mempunyai varians yang sama. Ini memastikan komponen utama adalah adil dan tidak terpengaruh oleh skala pembolehubah.
Mengira Matriks Kovarian
Seterusnya, kita mengira matriks kovarians . Matriks ini menunjukkan bagaimana semua pembolehubah dalam set data berkaitan antara satu sama lain. Ia berdasarkan korelasi , yang membantu kita memahami kekuatan dan arah hubungan antara pembolehubah.
Menghasilkan Komponen Utama
Untuk mencari komponen utama, kita melihat vektor eigen dan nilai eigen bagi matriks kovarians. Eigenvectors memberitahu kami arah komponen, dan nilai eigen menunjukkan berapa banyak varians yang dijelaskan oleh setiap komponen. Komponen utama dibuat daripada pembolehubah asal, dengan vektor eigen sebagai pekali. Mereka disenaraikan mengikut berapa banyak varians yang mereka jelaskan, dengan yang pertama menerangkan paling banyak.
Dengan melakukan langkah-langkah ini, PCA mengurangkan saiz set data sambil mengekalkan maklumat yang paling penting. Ini adalah kunci dalam banyak bidang, seperti analisis data perubatan dan pengendalian data yang kompleks.
Mentafsir Keputusan PCA
Selepas melakukan Analisis Komponen Utama (PCA) , adalah penting untuk memahami hasilnya. Lihat plot berjejak dan varians yang dijelaskan oleh komponen. Selain itu, semak pekali pemuatan dan sumbangan pembolehubah.
Plot Scree dan Varians Diterangkan
Plot scree membantu anda melihat keputusan PCA. Ia menunjukkan nilai eigen komponen. Anda akan menemui "siku" di mana nilai eigen berhenti berkembang. Di sinilah anda menyimpan komponen terbaik untuk dianalisis.
Varians yang dijelaskan oleh setiap komponen adalah penting. Ia memberitahu anda berapa banyak variasi data yang ditangkap oleh setiap komponen. Pilih beberapa komponen pertama yang menjelaskan banyak varians untuk analisis lanjut.
Pekali Pemuatan dan Sumbangan Boleh Ubah
Pekali pemuatan menunjukkan sejauh mana setiap pembolehubah asal mempengaruhi komponen. Pekali yang tinggi bermaksud hubungan yang kuat antara pembolehubah dan komponen. Ini membantu memahami maksud setiap komponen dari segi data asal.
Mengetahui sumbangan pembolehubah juga penting. Ia menunjukkan pembolehubah yang penting dalam pembentukan komponen. Ini membolehkan anda memberi tumpuan kepada bahagian data anda yang paling penting.
"PCA ialah salah satu kaedah pengurangan dimensi linear yang paling popular, dan tafsirannya adalah kunci untuk membuka kunci cerapan yang tersembunyi dalam data dimensi tinggi."
Aplikasi PCA dalam Penyelidikan Perubatan
Analisis Komponen Utama (PCA) merupakan alat utama dalam penyelidikan perubatan , terutamanya untuk mengendalikan data raya. Ia memudahkan data yang kompleks dan mencari corak tersembunyi. Ini menjadikannya pilihan utama bagi penyelidik yang berurusan dengan sejumlah besar maklumat.
Penemuan Biomarker dan Ramalan Penyakit
PCA adalah penting dalam mencari biomarker dan meramal penyakit. Penyelidik menggunakan PCA untuk melihat banyak pembolehubah seperti sitokin radang atau penanda genetik. Ini membantu mereka mencari faktor terpenting yang dikaitkan dengan penyakit.
Dengan mengurangkan saiz data, PCA menjadikannya lebih mudah untuk melihat corak penting. Ini membawa kepada biomarker yang lebih baik untuk pengesanan dan ramalan penyakit.
Analisis Data Genetik
PCA juga penting untuk analisis data genetik , terutamanya dalam kajian perkaitan seluruh genom (GWAS). Kajian ini melihat beribu-ribu penanda genetik, menghasilkan data yang kompleks. PCA mengurangkan kerumitan ini.
Ini membolehkan penyelidik mencari varian genetik yang dikaitkan dengan risiko penyakit atau sifat lain dengan lebih mudah. Dengan memfokuskan pada komponen utama data genetik, PCA membantu mengatasi cabaran set data yang kompleks.
Peranan PCA dalam penyelidikan perubatan adalah penting. Ia memudahkan data yang kompleks dan mendedahkan corak tersembunyi. Ini membantu penyelidik memahami kesihatan dan penyakit manusia dengan lebih baik. Dengan memudahkan data , PCA adalah kunci untuk memajukan penyelidikan perubatan dan menambah baik rawatan.

"PCA telah menjadi alat penting untuk analisis data multivariate dan pengurangan dimensi tanpa pengawasan dalam penyelidikan perubatan."
PCA lwn Teknik Pengurangan Dimensi Lain
Analisis Komponen Utama (PCA) merupakan pilihan utama untuk mengurangkan saiz data. Namun, ia bukanlah satu-satunya pilihan. Analisis Diskriminan Linear (LDA) merupakan satu lagi kaedah hebat untuk tugasan ini. LDA merupakan teknik yang diselia yang menggunakan label kelas untuk mencari ciri-ciri utama. Sebaliknya, PCA tidak diselia dan tidak memerlukan label kelas. LDA adalah yang terbaik untuk pengelasan, manakala PCA lebih versatil.
t-SNE (t-Distributed Stochastic Neighbor Embedding) dan UMAP (Uniform Manifold Approximation and Projection) merupakan teknik yang lebih baharu untuk mengurangkan saiz data. Ia merupakan teknik pengurangan dimensi tak linear dan sebahagian daripada algoritma pembelajaran manifold . Tidak seperti PCA, ia mengendalikan data tak linear dengan baik dan bagus untuk menggambarkan data kompleks. Setiap kaedah mengurangkan saiz data dengan caranya sendiri, sesuai dengan masalah dan jenis data yang berbeza.
| Teknik | Pendekatan | Kekuatan | weaknesses |
|---|---|---|---|
| Analisis Komponen Utama (PCA) | Transformasi linear untuk mencari paksi ortogon yang memaksimumkan varians | kesederhanaan, kebolehtafsiran, kebolehgunaan luas | Tidak dapat menangkap perhubungan tak linear, sensitif kepada Pengecualian |
| Analisis Diskriminasi Linear (LDA) | Teknik diselia yang mencari kombinasi linear untuk memaksimumkan kebolehpisahan kelas | Berkesan untuk tugas klasifikasi, boleh menangani masalah berbilang kelas | Memerlukan data berlabel, mungkin tidak berfungsi dengan baik dengan sempadan tak linear |
| t-SNE | Teknik bukan linear yang mengekalkan struktur tempatan dan global data berdimensi tinggi | Cemerlang untuk visualisasi data berdimensi tinggi, boleh menangkap perhubungan tak linear | Mahal dari segi pengiraan, boleh menjadi sensitif kepada hiperparameter |
| UMAP | Teknik bukan linear yang mengekalkan struktur global data berdimensi tinggi | Lebih cepat daripada t-SNE, boleh mengendalikan set data yang lebih besar, lebih baik dalam memelihara struktur global | Tafsiran keputusan boleh menjadi lebih mencabar daripada t-SNE |
Memilih teknik yang betul untuk mengurangkan saiz data bergantung pada data dan matlamat anda. Adalah bijak untuk mencuba beberapa kaedah dan melihat mana yang paling sesuai untuk anda.
Amalan Terbaik dan Had PCA
Apabila bekerja dengan set data dunia sebenar, penyelidik sering menghadapi data yang hilang dan outlier . Isu-isu ini boleh menjejaskan keputusan Analisis Komponen Utama (PCA) . Untuk menangani masalah ini, adalah lebih baik untuk mengimput nilai yang hilang dan mengendalikan outlier . Menggunakan PCA yang teguh adalah pendekatan yang baik. Selain itu, prapemprosesan data yang betul adalah kunci kepada keputusan PCA yang boleh dipercayai.
Mengendalikan Data dan Outlier yang Hilang
Kehilangan data dan outlier benar-benar boleh menjejaskan prestasi PCA. Berikut adalah beberapa cara untuk menanganinya:
- Gunakan teknik seperti imputasi min, jiran k-hampir atau kaedah lanjutan untuk mengisi nilai yang hilang.
- Cari dan uruskan outlier dengan PCA yang mantap algoritma yang mengabaikan nilai melampau.
- Pastikan data anda diseragamkan, dinormalkan dan bersih untuk mengelakkan keputusan PCA condong.
Andaian dan Had PCA
PCA mempunyai andaian dan batasannya sendiri . Andaian utama termasuk:
- Linearity: Ia menganggap hubungan linear antara pembolehubah.
- Normaliti: Data hendaklah mengikut taburan normal.
- Ketiadaan multikolineariti: Pembolehubah tidak boleh terlalu berkait rapat.
PCA juga mempunyai kelemahannya. Sukar untuk mentafsir keputusan dengan banyak pembolehubah. Selain itu, terdapat risiko pemadanan berlebihan jika anda menyimpan terlalu banyak komponen utama. Penyelidik harus memikirkan perkara ini semasa menggunakan PCA dan berhati-hati dengan penemuan mereka.
"PCA bertujuan untuk mengubah data berdimensi tinggi kepada perwakilan berdimensi lebih rendah, menangkap maklumat penting sambil membuang ciri berlebihan."
Mengetahui cara terbaik untuk menggunakan Analisis Komponen Utama (PCA) membantu penyelidik mendapatkan pandangan berharga daripada data mereka. Mereka harus menyedari andaian dan kemungkinan isu untuk menggunakannya dengan baik.
Kesimpulan
Analisis komponen utama (PCA) ialah alat utama untuk memudahkan data perubatan yang kompleks. Ia mencari komponen utama yang memegang paling banyak maklumat. Ini menjadikannya lebih mudah untuk bekerja dengan set data yang besar dan kompleks.
PCA membantu menyelesaikan "kutukan dimensi" dan menangani multikolineariti dalam kajian perubatan. Ia digunakan dalam banyak bidang, seperti mencari biomarker baharu dan meramalkan penyakit. Anda boleh mendapatkan lebih lanjut mengenainya di penemuan biomarker dan ramalan penyakit.
PCA mempunyai peraturan dan hadnya sendiri, tetapi ia boleh memberikan pandangan yang berharga dan menjadikan analisis data lebih cekap. Ia menggunakan vektor eigen dan nilai eigen untuk mengurangkan data kepada bentuk yang lebih mudah. Ini membantu menyelesaikan masalah seperti multikolineariti.
Teorem spektrum dan sifat matriks menjadikan PCA lebih berkuasa untuk data perubatan yang kompleks. Apabila data perubatan semakin besar dan lebih kompleks, menggunakan PCA dan pembelajaran mesin lain akan menjadi kunci. Ia membantu penyelidik mencari cerapan penting dan meningkatkan penjagaan kesihatan.
Dengan menggunakan PCA, doktor dan penyelidik boleh mencari biomarker baharu, meramal penyakit dan menganalisis data genetik dengan lebih baik. Ini membawa kepada penjagaan pesakit yang lebih baik dan penyelesaian penjagaan kesihatan yang lebih berkesan.
Soalan Lazim
Apakah itu Analisis Komponen Utama (PCA)?
Analisis Komponen Utama (PCA) ialah satu cara untuk menjadikan set data volum tinggi yang kompleks lebih mudah. Ia mencari bahagian utama yang memegang paling banyak maklumat dan mengabaikan yang lain. Ini menyimpan semua butiran penting.
Apakah latar belakang sejarah PCA?
Karl Pearson, seorang ahli matematik British, mencipta PCA pada tahun 1901. Harold Hotelling, seorang ahli statistik Amerika, juga mengusahakannya pada tahun 1930-an. Ia juga dikenali sebagai transformasi Hotelling atau transformasi Karhunen–Loève , bergantung pada tempat ia digunakan.
Apakah matlamat utama PCA?
Matlamat utama PCA adalah untuk menangani "kutukan dimensi." Masalah ini menyukarkan untuk mendapatkan hasil yang bermakna daripada set data yang besar. PCA mengurangkan bilangan ciri sambil menyimpan sebanyak mungkin data.
Apakah vektor eigen dan nilai eigen dalam PCA?
Vektor eigen hanya berubah mengikut skala apabila melalui penjelmaan linear. Nilai eigen memberitahu kita berapa banyak vektor eigen ini meregang atau mengecut. Matriks kovarians membantu mencari bahagian penting data ini.
Bagaimanakah PCA digunakan dalam analisis data perubatan?
Dalam bidang perubatan, PCA membantu dengan data kompleks seperti biomarker dan maklumat genetik. Ia menyelesaikan masalah seperti multikolineariti dan "kutukan dimensi" dalam set data ini.
Apakah algoritma PCA?
Algoritma PCA bermula dengan menyediakan data. Kemudian, ia mengira matriks kovarians dan mencari komponen utama menggunakan vektor eigen dan nilai eigen.
Bagaimanakah keputusan PCA boleh ditafsirkan?
Untuk memahami keputusan PCA, lihat plot skree dan berapa banyak varians yang dijelaskan oleh setiap komponen. Pekali pemuatan menunjukkan pembolehubah asal yang mempengaruhi setiap komponen, menjadikannya lebih mudah untuk memahami kepentingannya.
Bagaimanakah PCA dibandingkan dengan teknik pengurangan dimensi lain?
PCA ialah kaedah linear, tidak seperti teknik tak linear seperti t-SNE dan UMAP . Walaupun PCA dan t-SNE tidak diselia, LDA ialah kaedah yang diselia. Teknik yang betul bergantung pada data dan matlamat penyelidikan.
Apakah amalan terbaik dan batasan PCA?
Untuk menggunakan PCA dengan baik, mengendalikan data dan outlier yang hilang, dan memproses data dengan betul. Tetapi, PCA mungkin sukar untuk ditafsirkan dan mungkin terlalu sesuai jika anda menyimpan terlalu banyak komponen.
Pautan Sumber
- https://www.keboola.com/blog/pca-machine-learning
- https://www.soa.org/digital-publishing-platform/emerging-topics/principal-component-analysis-using-r/
- https://docs.opencv.org/4.x/d1/dee/tutorial_introduction_to_pca.html
- https://medium.com/@tubelwj/pca-introduction-to-principal-component-analysis-0ab205fe03d8
- https://www.geeksforgeeks.org/dimensionality-reduction-with-pca-selecting-the-largest-eigenvalues-and-eigenvectors/
- http://rstudio-pubs-static.s3.amazonaws.com/150640_4ab884411f5d4b4c85f032cf3fe68aa0.html
- https://medium.com/wicds/the-power-of-eigenvectors-and-eigenvalues-in-dimension-reduction-techniques-such-as-pca-8540322124ea
- https://towardsdatascience.com/dimensionality-reduction-for-dummies-part-3-f25729f74c0a
- https://www.turing.com/kb/guide-to-principal-component-analysis
- https://www.ibm.com/topics/principal-component-analysis
- https://towardsdatascience.com/principal-component-analysis-made-easy-a-step-by-step-tutorial-184f295e97fe
- https://bagheri365.github.io/blog/Principal-Component-Analysis-from-Scratch/
- https://www.geeksforgeeks.org/principal-component-analysis-pca/
- https://sebastianraschka.com/Articles/2015_pca_in_3_steps.html
- https://blog.paperspace.com/dimension-reduction-with-principal-component-analysis/
- https://towardsdatascience.com/principal-component-analysis-for-dimensionality-reduction-115a3d157bad
- https://www.editage.com/insights/an-introduction-to-principal-components-analysis-for-biomedical-researchers/
- https://fan.princeton.edu/sites/g/files/toruqf5476/files/documents/PCA_BigData_revision.pdf
- https://stackoverflow.com/questions/46972884/dimensionality-reduction
- https://neptune.ai/blog/dimensionality-reduction
- https://www.linkedin.com/advice/0/what-benefits-drawbacks-using-pca-data-dimensionality
- https://medium.com/@muhammaddawoodaslam/dimensionality-reduction-an-introduction-to-pca-and-its-applications-f73e3639899b
- http://infolab.stanford.edu/~ullman/mmds/ch11.pdf
- https://harvard-iacs.github.io/2020-CS109A/a-sections/a-section4/notes/a-sec4-PCA.pdf
