# Introduction

A method of dimensional reduction is PCA. When a machine learning method has a large number of features, we must choose the features that contribute the most and ignore the datasets that are less significant. This is where PCA comes into play. Consequently, PCA is an unsupervised method for choosing useful datasets from a huge collection of features. It is a statistical technique that converts the observations of correlated features into a set of linearly uncorrelated features via an orthogonal transformation.

## PCA on Numerical Dataset

**Given the following data use PCA to reduce the dimension from 2 to 1.**

Feature | EN.1 | EN.2 | EN.3 | EN.4 |
---|---|---|---|---|

x | 4 | 8 | 13 | 7 |

y | 11 | 4 | 5 | 14 |

Following are the steps to obtained the required number of PCA.

#### Step1: Dataset

Feature | EN.1 | EN.2 | EN.3 | EN.4 |
---|---|---|---|---|

x | 4 | 8 | 13 | 7 |

y | 11 | 4 | 5 | 14 |

No.of feature, n = 2

No.of Sample, N = 4

#### Step2: Computation of mean of variables

\(\bar{x} = \frac{4 + 8 + 13 + 7}{4}= 8\) \(\bar{y} = \frac{11 + 4 + 5+ 14}{4}= 8.5\)

#### Step3: Computation of covariance matrix

ordered paired are, (x, x), (x, y), (y, x), (y, y)

If we have n variables then we have \(n^2\) ordered pair.

**(i) Covariance of all ordered pairs**

**(ii) Covariance Matrix**

cov(x,x) | cov(x,y) |
---|---|

cov(y,x) | cov(y,y) |

14 | -11 |
---|---|

-11 | 23 |

#### Step 4:Eigen value, Eigen vector, Normalized Eigen vector

**(i) Eigen Values**

lambda = 30.38, 6.61

**(ii) Eigen Vectors**
\((S- \lambda 1 I)U1 = 0\)
\((14- \lambda 1)U1 - 11 U2 = 0\)
\(-11 U1 - (23- \lambda 1)U2 = 0\)

Hence,normalized eigen vector u1 of 𝜆1 i.e e1 [-0.83025082, 0.55738997]

for 𝜆2 normalized eigen vector i.e e2 [-0.55738997, -0.83025082]

**Step5: Derive New Dataset**

Feature | EN.1 | EN.2 | EN.3 | EN.4 |
---|---|---|---|---|

pc1 | p11 | p12 | p13 | p14 |

**for pc1**:
\(p11 = e1^T[-4, 2.5]^T = -4.008989537218968\)
\(p12 = e1^T[0, 3.5]^T = 3.7361286866113304\)
\(p13 = e1^T[5, -2.5]^T = 0.1539328264398951\)
\(p14 = e1^T[-1, 6]^T = 0.1189280241677419\)

Feature | EN.1 | EN.2 | EN.3 | EN.4 |
---|---|---|---|---|

pc1 | -4.008 | 3.736 | 0.153 | 0.118 |

# PCA Using Python

# Import Necessary Module

```
import numpy as np
import pandas as pd
```

# DataSet

```
#Understanding the mathematics behind PCA
A = np.matrix([[4,8,13,7],
[11,4,5,14]])
```

```
A.shape
```

```
(2, 4)
```

```
dataset = pd.DataFrame(A,columns = ['EN1','EN2','EN3','EN4'], index = ["x","y"])
dataset
```

EN1 | EN2 | EN3 | EN4 | |
---|---|---|---|---|

x | 4 | 8 | 13 | 7 |

y | 11 | 4 | 5 | 14 |

# Compute the mean of variable

```
np.mean(dataset,1)
```

```
x 8.0
y 8.5
dtype: float64
```

# Compute covariance matrix

```
cov_mat = dataset.T.cov()
cov_mat
```

x | y | |
---|---|---|

x | 14.0 | -11.0 |

y | -11.0 | 23.0 |

# Computation of eigenvalues and eigenvectors

```
w, v = np.linalg.eig(cov_mat)
```

```
w
```

```
array([ 6.61513568, 30.38486432])
```

```
v
```

```
array([[-0.83025082, 0.55738997],
[-0.55738997, -0.83025082]])
```

```
v[1:].T
v[1:].shape
```

```
(1, 2)
```

# Computation of first principal component

```
p11 = np.dot(v[1:], np.array([[4-8],[11-8.5]]))
p11
```

```
array([[0.15393283]])
```

```
p12 = np.dot(v[1:], np.array([[8-8],[4-8.5]]))
p12
```

```
array([[3.73612869]])
```

```
p13 = np.dot(v[1:], np.array([[13-8],[5-8.5]]))
p13
```

```
array([[0.11892802]])
```

```
p14 = np.dot(v[1:], np.array([[7-8],[14-8.5]]))
p14
```

```
array([[-4.00898954]])
```

```
pc1 = [p11,p12,p13,p14]
```

```
pd.Series(pc1)
```

```
0 [[0.1539328264398951]]
1 [[3.7361286866113304]]
2 [[0.1189280241677419]]
3 [[-4.008989537218968]]
dtype: object
```

```
```

## Comments