Principal Component Analysis

This project was completed for a Machine Learning Fundamentals course (ICS 435), meant to demonstrate Principal Component Analysis (PCA) and transfer learning. The professor (Peter Sadowski) provided a sample notebook that provided an example of extracting the principal components from an image and how to use those components to reconstruct the image. With this starting platform, we had to recreate this process for a variety of k values, and perform this analysis on a separate dataset - the MNIST digits dataset.

Once the PCA space for the pokemon and MNIST datasets have been acquired, we were able to perform transfer learning. By embedding the pokemon images in the MNIST PCA space then map them backk into image space, reconstruction of the pokemon based on the principal components of the MNIST digits was possible. When enough principal components were used, the images became recognizable as pokemon instead of digits.

Working on this project solidified my understanding of PCA, the math behind it, and how it is used. It also provided me with excellent practice in cleaning and organizing datasets creating graphical displays of the results.

Principal Components of Pokemon

Principal Components of MNIST

Transfer Learning

You can view the whole code in the GitHub repository for this project.