{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/a-tutorial-on-principal-component-analysis","title":"A Tutorial on Principal Component Analysis","arxiv_id":"1404.1100","date":"2014-04-03","proceeding":null,"authors":["Jonathon Shlens"],"abstract":"Principal component analysis (PCA) is a mainstay of modern data analysis - a\nblack box that is widely used but (sometimes) poorly understood. The goal of\nthis paper is to dispel the magic behind this black box. This manuscript\nfocuses on building a solid intuition for how and why principal component\nanalysis works. This manuscript crystallizes this knowledge by deriving from\nsimple intuitions, the mathematics behind PCA. This tutorial does not shy away\nfrom explaining the ideas informally, nor does it shy away from the\nmathematics. The hope is that by addressing both aspects, readers of all levels\nwill be able to gain a better understanding of PCA as well as the when, the how\nand the why of applying this technique.","url_abs":"http://arxiv.org/abs/1404.1100v1","url_pdf":"http://arxiv.org/pdf/1404.1100v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"a-tutorial-on-principal-component-analysis","repo_url":"https://github.com/abmitra84/Feature_Engineering","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-tutorial-on-principal-component-analysis","repo_url":"https://github.com/abmitra84/linear_algebra_tutorials","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-tutorial-on-principal-component-analysis","repo_url":"https://github.com/joedinoto/ExploratoryDataAnalysis","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-tutorial-on-principal-component-analysis","repo_url":"https://github.com/maxhalford/prince","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-tutorial-on-principal-component-analysis","repo_url":"https://github.com/salluru007/papers","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-tutorial-on-principal-component-analysis","repo_url":"https://github.com/sandeeppalakkal/ML_Datascience_Practice","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"a-tutorial-on-principal-component-analysis","repo_url":"https://github.com/bghojogh/Principal-Component-Analysis","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"pca","method_name":"PCA"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1404.1100","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1404.1100"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bghojogh/Principal-Component-Analysis","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/abmitra84/linear_algebra_tutorials","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sandeeppalakkal/ML_Datascience_Practice","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/abmitra84/Feature_Engineering","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/salluru007/papers","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/maxhalford/prince","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/joedinoto/ExploratoryDataAnalysis","reach":{"status":"ok"}}],"summary":{"unverified":11},"by_repo_kind":{"listed":{"samples":11,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"401a4194818f1a11","entry":"build_ellipse","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/plot.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/plot.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"401a4194818f1a11"}},{"code_sha256_prefix":"a380c57525bec844","entry":"check_is_dataframe_input","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/utils.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a380c57525bec844"}},{"code_sha256_prefix":"53135379e14fd93f","entry":"check_is_fitted","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/utils.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"53135379e14fd93f"}},{"code_sha256_prefix":"e1845a3b3a8f3316","entry":"compute_svd","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/svd.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/svd.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e1845a3b3a8f3316"}},{"code_sha256_prefix":"857609b1581915f0","entry":"load_energy_mix","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/datasets.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"857609b1581915f0"}},{"code_sha256_prefix":"b82049109a993489","entry":"make_labels_and_names","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/utils.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b82049109a993489"}},{"code_sha256_prefix":"87aa5108b3a372ac","entry":"select_active_columns","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/ca.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/ca.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"87aa5108b3a372ac"}},{"code_sha256_prefix":"52e691ce86333610","entry":"select_active_rows","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/ca.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/ca.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"52e691ce86333610"}},{"code_sha256_prefix":"cdc0e8fa3c2b8a1e","entry":"select_active_variables","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/pca.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/pca.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cdc0e8fa3c2b8a1e"}},{"code_sha256_prefix":"5ad83f57b4d2d2ec","entry":"stylize_axis","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/plot.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/plot.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ad83f57b4d2d2ec"}},{"code_sha256_prefix":"fa46e7074c2047ba","entry":"unscaled_procrustes","repo":"maxhalford/prince","repo_kind":"listed","path":"prince/gpa.py","file_url":"https://github.com/maxhalford/prince/blob/HEAD/prince/gpa.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fa46e7074c2047ba"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}