# 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.

# II. Load Data

- Load the dataset using pandas.
- Import essential modules and helper functions from NumPy and Matplotlib.
- Explore the pandas dataframe using the head() and info() functions.

`RangeIndex: 150 entries, 0 to 149`

Data columns (total 5 columns):

# Column Non-Null Count Dtype

--- ------ -------------- -----

0 sepal_length 150 non-null float64

1 sepal_width 150 non-null float64

2 petal_length 150 non-null…