I saw a post the other day on /r/MLQuestions asking about PCA and it made me re-realize that, despite being commonly used by data scientists and scientists, PCA is often not well understood. Most explanations I come across either don’t include any linear algebra, which makes PCA seem like magic, or go all in on the math and lose the intuition. In this blog post, I try my hand at explaining PCA using data visualization (which PCA is often used for) as the motivation. In it, I integrate linear algebra, Python code, and visualizations to hopefully provide a complete picture of the technique.