# Principal Component Analysis

Have you ever felt overwhelmed analyzing data with a bazillion dimensions? π΅ Or wasted time collecting dimensions that ended up not mattering? Principal Component Analysis (PCA) is here to help!

PCA is all about finding the most important dimensions that explain variance in your data - essentially distilling relevant signals from noisy dimensions. It transforms data into a compact set of principal components. π

We'll unpack how PCA works its magic to simplify and visualize complex data.

Buckle up for a dimensionality reduction ride as we dive into maximizing those principal variances!

## π¨βπ¬ Discovering the Principal Components

The idea of PCA has its roots in early 20th century statistics.

In 1901, Karl Pearson π¨βπΌ invented a technique called the Pearson covariance to measure linear relationships between variable pairs in data.

A few decades later in 1933, Harold Hotelling π₯Ό built on Pearson's work. He defined what's now known as Hotelling transform for a method to estimate principal components for multivariate analysis.

PCA as we know it today emerged when other statisticians later combined ideas from both Pearson and Hotelling. PCA became popular once computers made it possible to perform the intensive matrix calculations!

An early application was facial recognition by psychologists in the 1960s. They used PCA to capture variations in human faces in terms of principal components instead of by each facial feature individually. This paved the way for uses in machine learning and modern AI applications of PCA!

Now that we've covered the key figures behind its invention, let's break down in simple terms what PCA is all about.

## π‘ How it Works

At a high level, PCA aims to simplify complex data sets with many dimensions. π It mathematically transforms the data into a new set of dimensions called principal components (PCs) ordered by how much variation they explain from the original data set.

Let's walk through a fruit supply chain example to make this concrete! πππ

Imagine we own fruit orchards and have data tracking tons of dimensions like fruit sugar levels, soil moisture, weather patterns, ripening rates and so on. It's crazy complex with hundreds of interrelated dimensions. π΅

PCA suggests transforming these original dimensions into a smaller set of principal components. The 1st PC would explain the most variation, the 2nd PC second most etc. Perhaps the 1st PC maps mainly to ripening rates while the 2nd tracks moisture.

Instead of analyzing tons of noisy, collinear dimensions, PCA gives us a tidy ordered set of dimensions to focus on! The first few principal components often suffice to explore key data patterns.

## π PCA Step-By-Step

Let's break down the mathematical process behind PCA using our fruit supply chain example:

**Step 1) Standardization**

First we standardize our original data dimensions. This centers dimensions to have a mean of 0 and scales them to have a standard deviation of 1.

```

For instance, original sugar content range was 0-1.0.

Standardized range is -2.5 to +2.5.

```

**Step 2) Covariance Matrix**

Next we calculate the covariance matrix between all dimensions. The covariance matrix helps identify relationships.

```

For example, higher rain covariance with higher soil moisture.

```

**Step 3) Eigendecomposition** π€―

We perform eigendecomposition on the covariance matrix. This mathematically digs out a set of eigenvectors and eigenvalues. The eigenvalues represent variance while eigenvectors map to the new principals components.

**Eigen-whats?! π**

Eigen-decomposition sounds super technical but it's easier than you think! The key outputs we want are the **eigenvectors** and **eigenvalues**.

Let's break it down using a fruit example:

Imagine 3 fruits - an apple, banana, and grape. πππ

The **eigenvectors** are like the _principal directions_ these fruits extend along. For instance, comparing length vs width vs height.

The **eigenvalues** tell us how much _variance_ there is along each eigenvector direction.

So one eigendirection might have high eigenvalue meaning lots of variance in fruit _lengths_, while another direction has low variance meaning fruit _widths_ tend to be similar.

In PCA, we use eigen-stuff to derive principal components that capture key variances!

**Step 4) PC Transformation**

Finally, we re-express the original data in terms of the derived principal components.

```

Each fruit data point gets a scoring along each PC dimension.

We focus analysis on the first few PCs capturing most variance.

```

Focusing on the dimensions with the most variance allows PCA to highlight the most salient patterns and themes in the complex dataset. Some key reasons we care most about high variance dimensions:

1. They often relate to key signals amidst noisy data. Lower variance dimensions more likely represent randomness or measurement errors rather than informative patterns. Figuring out which variance sources are "signal" vs "noise" is key.

2. High variance dimensions have bigger impacts on the phenomena represented in the dataset. For example in our supply chain data, dimensions linked to weather and ripening rates likely drive more of the outcomes vs something minor like transportation costs.

3. By transforming many lower variance dimensions into fewer key principal components ordered by variance, we simplify without much information loss. The first few PCs often suffice to approximate the most important patterns, making interpretation and modeling easier.

In short, high variance dimensions tend to be the "sweet spot" that balance being informative, impactful drivers while also simplifying complexity.

## π PCA Advantages

**Dimensionality Reduction** π Extracting just the top few principal components allows extreme simplification without much information loss. Reduces overfitting likelihood.

**Noise Filtering** π‘Principal components help distinguish between meaningful signal vs random noise in complex data. Focuses model on reliable signal.

**Visualization** π Lower dimensional PC representations of data can be easily visualized for exploration vs visualizing hundreds of messy original dimensions.

**Feature Extraction** π€ The derived principal components essentially become an optimized new feature space for modeling the phenomena (e.g. for usage in machine learning).

**Speeds Computation** π Algorithms like regression and clustering are faster with fewer input features from PCA rather than using raw high dimensional datasets directly. Requires less memory too.

## π PCA Limitations

**Information loss** π΅ No free lunch - simplifying dimensionality does lose some information even if we keep most variance. May lose key signals of interest.

**Assumes linearity** π PCA is optimized for linear relationships between dimensions. Won't find more complex nonlinear relationships in data.

**Susceptible to outliers** π Since based on covariance matrix between dimensions, outlier points can skew results. Generally want to handle outliers before applying PCA.

**Interpretability challenge** π€― Understanding what real-world phenomena newly created principal components represent can be difficult vs interpreting original feature space.

**Curse of dimensionality** π΅ For extremely high dimensional data (thousands+), computation becomes infeasible. Requires extra preprocessing like feature aggregation.

## π PCA Applications

**Image Compression** πΌοΈ PCA used to develop lossy image codecs that keep most information while drastically reducing file sizes by compressing away smaller principal component variances.

**Finance Modeling** π PCA transforms correlated financial indicators like prices, volatility, volume etc. into principal factors to improve risk models.

**Gene Analytics** π§¬ Reduces dimensionality of gene expression datasets from thousands of genes down to most influential principal components tying to health outcomes.

**Recommendation Systems** π PCA uncovers latent features that characterize preferences based on customer behaviors and ratings to enable better recommendations.

**Computer Vision** π¦ Transforms high dimensional visual data into fewer principal components to better enable classification tasks like facial recognition and self-driving vehicles.

## π¬ PCA in a Nutshell

PCA is an incredibly useful statistical technique for simplifying messy, high dimensional data sets down to the key components that matter most.

It transforms possibly correlated dimensions into an ordered set of principal components that explain descending amounts of variance. This enables simplification, noise filtering, and dimensionality reduction.

Key aspects are:

- Invented in early 20th century building on work by Pearson and Hotelling

- Uses covariance concepts and eigendecomposition

- Focuses modeling on high variance PCs

- Helpful for compression, visualization and feature extraction

- Tradeoff between simplicity and potentially losing information

Leveraging PCA helps cut through noisy dimensions to enable finding essential patterns, training more robust models, and ultimately gaining deeper insights into multidimensional data!

## π€ PCA Lingo

**Principal Component (PC)** - The core variables that result from PCA, explaining descending amounts of variance from the original feature space.

The lead singers that will explain most of a band's music style.

**Transform** - Mathematically converting original data features into a new set of features (in this the PCs)

Remixing song audio from stereo to mono.

**Variance** - Statistical measure of how far values spread out from their average. Higher variance means more diversity.

How wide a range of T-shirt sizes are in stock.

**Covariance** - Statistic measuring how two random variables vary together (positive = both increase; negative = one increases as other decreases).

Like seeing if rainy days covary with a hippo's mood using data.

**Eigendecomposition** - Breaking a matrix down into eigenvectors and eigenvalues to analyze properties.

Splitting a piΓ±ata open to uncover the hidden surprises inside.

**Dimensionality reduction** - Simplifying high dimensional data without losing essential patterns.

Cropping and compressing images to smaller files sizes while keeping key visual details.