# I. Introduction

Principal Component Analysis (PCA) is a dimensionality reduction technique widely used in data analysis and machine learning. It helps uncover the underlying structure of high-dimensional data by transforming it into a set of linearly uncorrelated variables called principal components. One classic example of applying PCA is with the Iris dataset, a dataset commonly used for exploring and illustrating various machine learning concepts.

We will do all the machine learning without using any of the popular machine learning libraries such as scikit-learn and statsmodels. The aim of this project and is to implement all the machinery of the various learning algorithms yourself, so you have a deeper understanding of the fundamentals. By the time you complete this project, you will be able to implement and apply PCA from scratch using NumPy in Python, conduct basic exploratory data analysis, and create simple data visualizations with Seaborn and Matplotlib.