Chapter # 09
Dimension Reduction & PCA

Introduction

This document is prepared using Quarto in RStudio. The Quarto file (.qmd) can be converted to notebook (.ipynb) by running the code - quarto convert filename.qmd - in the terminal of RStudio. Similarly a Python notebook file (.ipynb) can be converted into Quarto (.qmd) by running the code - quarto convert filename.ipynb in the terminal of RStudio. More about the conversion can be found here.

Useful Youtube video link for PCA

What is Principal Component Analysis (PCA)?

Working Directory

import os
os.getcwd()
for files in os.listdir():
  print(files)

# Ignore Warnings 
import warnings 
warnings.filterwarnings('ignore')

Loading Necessary Python Packages

# For Data Manipulation & Analysis
import pandas as pd
import numpy as np
# For visualization 
import matplotlib.pyplot as plt 
import seaborn as sns
# For Machine Learning 
import sklearn 

Loading Dataset

from sklearn import datasets
cancer = datasets.load_breast_cancer()
dir(cancer)
cancer.keys()
dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module'])
df = pd.DataFrame(cancer.data, columns = cancer.feature_names)
df.head()
mean radius mean texture mean perimeter mean area mean smoothness mean compactness mean concavity mean concave points mean symmetry mean fractal dimension ... worst radius worst texture worst perimeter worst area worst smoothness worst compactness worst concavity worst concave points worst symmetry worst fractal dimension
0 17.99 10.38 122.80 1001.0 0.11840 0.27760 0.3001 0.14710 0.2419 0.07871 ... 25.38 17.33 184.60 2019.0 0.1622 0.6656 0.7119 0.2654 0.4601 0.11890
1 20.57 17.77 132.90 1326.0 0.08474 0.07864 0.0869 0.07017 0.1812 0.05667 ... 24.99 23.41 158.80 1956.0 0.1238 0.1866 0.2416 0.1860 0.2750 0.08902
2 19.69 21.25 130.00 1203.0 0.10960 0.15990 0.1974 0.12790 0.2069 0.05999 ... 23.57 25.53 152.50 1709.0 0.1444 0.4245 0.4504 0.2430 0.3613 0.08758
3 11.42 20.38 77.58 386.1 0.14250 0.28390 0.2414 0.10520 0.2597 0.09744 ... 14.91 26.50 98.87 567.7 0.2098 0.8663 0.6869 0.2575 0.6638 0.17300
4 20.29 14.34 135.10 1297.0 0.10030 0.13280 0.1980 0.10430 0.1809 0.05883 ... 22.54 16.67 152.20 1575.0 0.1374 0.2050 0.4000 0.1625 0.2364 0.07678

5 rows × 30 columns

df.shape
print ("The number of rows and columns in the dataset is {} and {} respectively".format(df.shape[0], df.shape[1]))
The number of rows and columns in the dataset is 569 and 30 respectively

Metadata of the Dataset

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 569 entries, 0 to 568
Data columns (total 30 columns):
 #   Column                   Non-Null Count  Dtype  
---  ------                   --------------  -----  
 0   mean radius              569 non-null    float64
 1   mean texture             569 non-null    float64
 2   mean perimeter           569 non-null    float64
 3   mean area                569 non-null    float64
 4   mean smoothness          569 non-null    float64
 5   mean compactness         569 non-null    float64
 6   mean concavity           569 non-null    float64
 7   mean concave points      569 non-null    float64
 8   mean symmetry            569 non-null    float64
 9   mean fractal dimension   569 non-null    float64
 10  radius error             569 non-null    float64
 11  texture error            569 non-null    float64
 12  perimeter error          569 non-null    float64
 13  area error               569 non-null    float64
 14  smoothness error         569 non-null    float64
 15  compactness error        569 non-null    float64
 16  concavity error          569 non-null    float64
 17  concave points error     569 non-null    float64
 18  symmetry error           569 non-null    float64
 19  fractal dimension error  569 non-null    float64
 20  worst radius             569 non-null    float64
 21  worst texture            569 non-null    float64
 22  worst perimeter          569 non-null    float64
 23  worst area               569 non-null    float64
 24  worst smoothness         569 non-null    float64
 25  worst compactness        569 non-null    float64
 26  worst concavity          569 non-null    float64
 27  worst concave points     569 non-null    float64
 28  worst symmetry           569 non-null    float64
 29  worst fractal dimension  569 non-null    float64
dtypes: float64(30)
memory usage: 133.5 KB
df.isnull().sum()
mean radius                0
mean texture               0
mean perimeter             0
mean area                  0
mean smoothness            0
mean compactness           0
mean concavity             0
mean concave points        0
mean symmetry              0
mean fractal dimension     0
radius error               0
texture error              0
perimeter error            0
area error                 0
smoothness error           0
compactness error          0
concavity error            0
concave points error       0
symmetry error             0
fractal dimension error    0
worst radius               0
worst texture              0
worst perimeter            0
worst area                 0
worst smoothness           0
worst compactness          0
worst concavity            0
worst concave points       0
worst symmetry             0
worst fractal dimension    0
dtype: int64

Correlation of the variables

correlation = df.corr()
plt.figure(figsize=(20,17))
sns.heatmap(correlation, vmax=1, square=True,annot=True,cmap='cubehelix')
plt.title('Correlation between different features')
plt.show()

Preprocessing of the Dataset

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled_data = scaler.fit_transform(df)
scaled_df = pd.DataFrame(scaled_data, columns = cancer.feature_names)
scaled_df.sample(5)
mean radius mean texture mean perimeter mean area mean smoothness mean compactness mean concavity mean concave points mean symmetry mean fractal dimension ... worst radius worst texture worst perimeter worst area worst smoothness worst compactness worst concavity worst concave points worst symmetry worst fractal dimension
51 -0.138398 -0.686403 -0.196026 -0.236314 -1.388458 -0.829146 -0.881727 -0.817389 -1.674391 -0.463218 ... -0.331164 -0.405029 -0.333042 -0.393567 -1.028767 -0.611108 -0.802091 -0.437707 -0.897473 -0.204807
445 -0.607021 1.303239 -0.591451 -0.607469 0.472519 -0.230469 -0.431757 -0.159385 0.030600 0.808373 ... -0.681134 0.762561 -0.678558 -0.644597 -0.055610 -0.458434 -0.533909 0.085174 -0.488175 -0.079567
434 0.208100 -0.546779 0.120315 0.053500 -0.506718 -0.636788 -0.694784 -0.519727 -0.871183 -0.817619 ... 0.008451 -0.836565 -0.147774 -0.181211 -0.463284 -0.631464 -0.720533 -0.531351 -0.607890 -0.868688
482 -0.186680 -1.216974 -0.191495 -0.308839 0.764297 0.211480 -0.388442 0.096492 -0.119089 0.509259 ... -0.298031 -1.198078 -0.366998 -0.387414 0.303844 -0.027768 -0.419248 0.287688 0.527792 0.516153
325 -0.413892 -0.463005 -0.441519 -0.469246 0.458285 -0.524975 -0.713993 -0.718340 -0.381957 -0.419272 ... -0.529963 -0.745372 -0.552861 -0.538243 0.264392 -0.846480 -0.816483 -0.892069 -0.344192 -0.834885

5 rows × 30 columns

print('The mean and standard deviation of  \
the variable "mean radius" are {} and {} \
respectively.'.format(round(scaled_df['mean radius'].mean(),4), round(scaled_df['mean radius'].std(),4)))
The mean and standard deviation of  the variable "mean radius" are -0.0 and 1.0009 respectively.

Covariance Matrix

mean_vec = np.mean(scaled_data, axis=0)
cov_mat = (scaled_data - mean_vec).T.dot((scaled_data - mean_vec)) / (scaled_data.shape[0]-1)
print('Covariance matrix \n%s' %cov_mat)
Covariance matrix 
[[ 1.00176056e+00  3.24351929e-01  9.99612069e-01  9.89095475e-01
   1.70881506e-01  5.07014640e-01  6.77955036e-01  8.23976636e-01
   1.48001350e-01 -3.12179472e-01  6.80285970e-01 -9.74887767e-02
   6.75358538e-01  7.37159198e-01 -2.22992026e-01  2.06362656e-01
   1.94545531e-01  3.76831225e-01 -1.04504545e-01 -4.27163418e-02
   9.71245907e-01  2.97530545e-01  9.66835698e-01  9.42739295e-01
   1.19826732e-01  4.14190751e-01  5.27839123e-01  7.45524434e-01
   1.64241985e-01  7.07832563e-03]
 [ 3.24351929e-01  1.00176056e+00  3.30113223e-01  3.21650988e-01
  -2.34296930e-02  2.37118951e-01  3.02950254e-01  2.93980713e-01
   7.15266864e-02 -7.65717560e-02  2.76354360e-01  3.87037830e-01
   2.82169018e-01  2.60302460e-01  6.62542133e-03  1.92312595e-01
   1.43545353e-01  1.64139495e-01  9.14323671e-03  5.45533955e-02
   3.53193674e-01  9.13650301e-01  3.58669926e-01  3.44150782e-01
   7.76398084e-02  2.78318729e-01  3.01555198e-01  2.95835766e-01
   1.05192783e-01  1.19415220e-01]
 [ 9.99612069e-01  3.30113223e-01  1.00176056e+00  9.88243612e-01
   2.07643090e-01  5.57916732e-01  7.17396452e-01  8.52475240e-01
   1.83349443e-01 -2.61937255e-01  6.92982910e-01 -8.69138267e-02
   6.94355197e-01  7.46294283e-01 -2.03050882e-01  2.51185131e-01
   2.28483899e-01  4.07933847e-01 -8.17730406e-02 -5.53311534e-03
   9.71183188e-01  3.03571890e-01  9.72095315e-01  9.43207466e-01
   1.50814456e-01  4.56576647e-01  5.64872009e-01  7.72598608e-01
   1.89447989e-01  5.11083511e-02]
 [ 9.89095475e-01  3.21650988e-01  9.88243612e-01  1.00176056e+00
   1.77340047e-01  4.99379326e-01  6.87190545e-01  8.24718286e-01
   1.51559440e-01 -2.83608244e-01  7.33851949e-01 -6.63969041e-02
   7.27907603e-01  8.01494523e-01 -1.67070287e-01  2.12956816e-01
   2.08025659e-01  3.72975776e-01 -7.26242231e-02 -1.99219755e-02
   9.64441062e-01  2.87994769e-01  9.60808165e-01  9.60902082e-01
   1.23740409e-01  3.91097651e-01  5.13508396e-01  7.23287782e-01
   1.43822678e-01  3.74417763e-03]
 [ 1.70881506e-01 -2.34296930e-02  2.07643090e-01  1.77340047e-01
   1.00176056e+00  6.60283643e-01  5.22902753e-01  5.54669988e-01
   5.58756786e-01  5.85821565e-01  3.01997850e-01  6.85268821e-02
   2.96613222e-01  2.46986503e-01  3.32960611e-01  3.19504817e-01
   2.48832996e-01  3.81345895e-01  2.01127852e-01  2.84106006e-01
   2.13495353e-01  3.61353055e-02  2.39273141e-01  2.07082304e-01
   8.06742020e-01  4.73300254e-01  4.35691429e-01  5.03939011e-01
   3.95003689e-01  5.00195447e-01]
 [ 5.07014640e-01  2.37118951e-01  5.57916732e-01  4.99379326e-01
   6.60283643e-01  1.00176056e+00  8.84675460e-01  8.32598309e-01
   6.03702036e-01  5.66364031e-01  4.98349280e-01  4.62861772e-02
   5.49871647e-01  4.56455058e-01  1.35537471e-01  7.40022356e-01
   5.71521303e-01  6.43392594e-01  2.30381479e-01  5.08211293e-01
   5.36257855e-01  2.48569687e-01  5.91249531e-01  5.10500995e-01
   5.66536837e-01  8.67333351e-01  8.17712354e-01  8.17009092e-01
   5.11121711e-01  6.88592503e-01]
 [ 6.77955036e-01  3.02950254e-01  7.17396452e-01  6.87190545e-01
   5.22902753e-01  8.84675460e-01  1.00176056e+00  9.23013194e-01
   5.01548072e-01  3.37376288e-01  6.33037366e-01  7.63525354e-02
   6.61553447e-01  6.18513825e-01  9.87372735e-02  6.71458893e-01
   6.92487233e-01  6.84462839e-01  1.78322604e-01  4.50091771e-01
   6.89448091e-01  3.00406844e-01  7.30849362e-01  6.77177350e-01
   4.49612218e-01  7.56297185e-01  8.85659158e-01  8.62839447e-01
   4.10185014e-01  5.15836457e-01]
 [ 8.23976636e-01  2.93980713e-01  8.52475240e-01  8.24718286e-01
   5.54669988e-01  8.32598309e-01  9.23013194e-01  1.00176056e+00
   4.63311644e-01  1.67211252e-01  6.99278795e-01  2.15173981e-02
   7.11901016e-01  6.91513854e-01  2.77019938e-02  4.91287673e-01
   4.39940250e-01  6.16717994e-01  9.55186580e-02  2.58037239e-01
   8.31779458e-01  2.93267121e-01  8.57430035e-01  8.11055024e-01
   4.53550155e-01  6.68628771e-01  7.53724145e-01  9.11757700e-01
   3.76405667e-01  3.69310185e-01]
 [ 1.48001350e-01  7.15266864e-02  1.83349443e-01  1.51559440e-01
   5.58756786e-01  6.03702036e-01  5.01548072e-01  4.63311644e-01
   1.00176056e+00  4.80766262e-01  3.03913382e-01  1.28278372e-01
   3.14445389e-01  2.24364533e-01  1.87650956e-01  4.22401505e-01
   3.43230240e-01  3.93990298e-01  4.49927276e-01  3.32370277e-01
   1.86054739e-01  9.08102844e-02  2.19554419e-01  1.77505338e-01
   4.27426215e-01  4.74033112e-01  4.34484601e-01  4.31054176e-01
   7.01057885e-01  4.39185353e-01]
 [-3.12179472e-01 -7.65717560e-02 -2.61937255e-01 -2.83608244e-01
   5.85821565e-01  5.66364031e-01  3.37376288e-01  1.67211252e-01
   4.80766262e-01  1.00176056e+00  1.11190486e-04  1.64463005e-01
   3.99000547e-02 -9.03289980e-02  4.02672109e-01  5.60822319e-01
   4.47416643e-01  3.41798745e-01  3.45614805e-01  6.89343077e-01
  -2.54138135e-01 -5.13594647e-02 -2.05512393e-01 -2.32262646e-01
   5.05831058e-01  4.59605900e-01  3.46843443e-01  1.75634121e-01
   3.34606745e-01  7.68647654e-01]
 [ 6.80285970e-01  2.76354360e-01  6.92982910e-01  7.33851949e-01
   3.01997850e-01  4.98349280e-01  6.33037366e-01  6.99278795e-01
   3.03913382e-01  1.11190486e-04  1.00176056e+00  2.13622773e-01
   9.74506342e-01  9.53505869e-01  1.64803858e-01  3.56691450e-01
   3.32942674e-01  5.14250220e-01  2.40990897e-01  2.28154507e-01
   7.16324113e-01  1.95141512e-01  7.20950853e-01  7.52871625e-01
   1.42168410e-01  2.87608629e-01  3.81254678e-01  5.31997297e-01
   9.47092790e-02  4.96466850e-02]
 [-9.74887767e-02  3.87037830e-01 -8.69138267e-02 -6.63969041e-02
   6.85268821e-02  4.62861772e-02  7.63525354e-02  2.15173981e-02
   1.28278372e-01  1.64463005e-01  2.13622773e-01  1.00176056e+00
   2.23563635e-01  1.11763668e-01  3.97942224e-01  2.32107621e-01
   1.95341772e-01  2.30688828e-01  4.12345364e-01  2.80215217e-01
  -1.11886951e-01  4.09722842e-01 -1.02421925e-01 -8.33414586e-02
  -7.37873381e-02 -9.26020990e-02 -6.90776223e-02 -1.19848153e-01
  -1.28440488e-01 -4.57349464e-02]
 [ 6.75358538e-01  2.82169018e-01  6.94355197e-01  7.27907603e-01
   2.96613222e-01  5.49871647e-01  6.61553447e-01  7.11901016e-01
   3.14445389e-01  3.99000547e-02  9.74506342e-01  2.23563635e-01
   1.00176056e+00  9.39306209e-01  1.51341309e-01  4.17055330e-01
   3.63119754e-01  5.57243422e-01  2.66956259e-01  2.44572602e-01
   6.98428059e-01  2.00723620e-01  7.22300731e-01  7.31999440e-01
   1.30283361e-01  3.42521416e-01  4.19636314e-01  5.55874162e-01
   1.10123974e-01  8.55829815e-02]
 [ 7.37159198e-01  2.60302460e-01  7.46294283e-01  8.01494523e-01
   2.46986503e-01  4.56455058e-01  6.18513825e-01  6.91513854e-01
   2.24364533e-01 -9.03289980e-02  9.53505869e-01  1.11763668e-01
   9.39306209e-01  1.00176056e+00  7.52826451e-02  2.85341536e-01
   2.71371654e-01  4.16461487e-01  1.34345087e-01  1.27294619e-01
   7.58706592e-01  1.96842594e-01  7.62552799e-01  8.12836496e-01
   1.25610187e-01  2.83755229e-01  3.85778129e-01  5.39113790e-01
   7.42567956e-02  1.75701742e-02]
 [-2.22992026e-01  6.62542133e-03 -2.03050882e-01 -1.67070287e-01
   3.32960611e-01  1.35537471e-01  9.87372735e-02  2.77019938e-02
   1.87650956e-01  4.02672109e-01  1.64803858e-01  3.97942224e-01
   1.51341309e-01  7.52826451e-02  1.00176056e+00  3.37288855e-01
   2.69157796e-01  3.29007720e-01  4.14234129e-01  4.28126626e-01
  -2.31096855e-01 -7.48745546e-02 -2.17686332e-01 -1.82516245e-01
   3.15011078e-01 -5.56559523e-02 -5.84010247e-02 -1.02186386e-01
  -1.07531080e-01  1.01658978e-01]
 [ 2.06362656e-01  1.92312595e-01  2.51185131e-01  2.12956816e-01
   3.19504817e-01  7.40022356e-01  6.71458893e-01  4.91287673e-01
   4.22401505e-01  5.60822319e-01  3.56691450e-01  2.32107621e-01
   4.17055330e-01  2.85341536e-01  3.37288855e-01  1.00176056e+00
   8.02679026e-01  7.45392672e-01  3.95407752e-01  8.04683023e-01
   2.04967390e-01  1.43254348e-01  2.60974494e-01  1.99722335e-01
   2.27794574e-01  6.79975390e-01  6.40271956e-01  4.84059046e-01
   2.78367653e-01  5.92013208e-01]
 [ 1.94545531e-01  1.43545353e-01  2.28483899e-01  2.08025659e-01
   2.48832996e-01  5.71521303e-01  6.92487233e-01  4.39940250e-01
   3.43230240e-01  4.47416643e-01  3.32942674e-01  1.95341772e-01
   3.63119754e-01  2.71371654e-01  2.69157796e-01  8.02679026e-01
   1.00176056e+00  7.73162805e-01  3.09973347e-01  7.28652769e-01
   1.87232571e-01  1.00417464e-01  2.27079511e-01  1.88684259e-01
   1.68777943e-01  4.85711424e-01  6.63730620e-01  4.41247742e-01
   1.98136040e-01  4.40102736e-01]
 [ 3.76831225e-01  1.64139495e-01  4.07933847e-01  3.72975776e-01
   3.81345895e-01  6.43392594e-01  6.84462839e-01  6.16717994e-01
   3.93990298e-01  3.41798745e-01  5.14250220e-01  2.30688828e-01
   5.57243422e-01  4.16461487e-01  3.29007720e-01  7.45392672e-01
   7.73162805e-01  1.00176056e+00  3.13330893e-01  6.12119921e-01
   3.58757174e-01  8.68939233e-02  3.95694673e-01  3.42873752e-01
   2.15729735e-01  4.53685716e-01  5.50559967e-01  6.03510257e-01
   1.43367633e-01  3.11201479e-01]
 [-1.04504545e-01  9.14323671e-03 -8.17730406e-02 -7.26242231e-02
   2.01127852e-01  2.30381479e-01  1.78322604e-01  9.55186580e-02
   4.49927276e-01  3.45614805e-01  2.40990897e-01  4.12345364e-01
   2.66956259e-01  1.34345087e-01  4.14234129e-01  3.95407752e-01
   3.09973347e-01  3.13330893e-01  1.00176056e+00  3.69727869e-01
  -1.28346334e-01 -7.76098171e-02 -1.03935708e-01 -1.10537008e-01
  -1.26840915e-02  6.03609620e-02  3.71843990e-02 -3.04669411e-02
   3.90088053e-01  7.82169401e-02]
 [-4.27163418e-02  5.45533955e-02 -5.53311534e-03 -1.99219755e-02
   2.84106006e-01  5.08211293e-01  4.50091771e-01  2.58037239e-01
   3.32370277e-01  6.89343077e-01  2.28154507e-01  2.80215217e-01
   2.44572602e-01  1.27294619e-01  4.28126626e-01  8.04683023e-01
   7.28652769e-01  6.12119921e-01  3.69727869e-01  1.00176056e+00
  -3.75536172e-02 -3.20065392e-03 -1.00215889e-03 -2.27761757e-02
   1.70868612e-01  3.90845741e-01  3.80643631e-01  2.15582894e-01
   1.11289544e-01  5.92369136e-01]
 [ 9.71245907e-01  3.53193674e-01  9.71183188e-01  9.64441062e-01
   2.13495353e-01  5.36257855e-01  6.89448091e-01  8.31779458e-01
   1.86054739e-01 -2.54138135e-01  7.16324113e-01 -1.11886951e-01
   6.98428059e-01  7.58706592e-01 -2.31096855e-01  2.04967390e-01
   1.87232571e-01  3.58757174e-01 -1.28346334e-01 -3.75536172e-02
   1.00176056e+00  3.60554418e-01  9.95457402e-01  9.85746984e-01
   2.16955724e-01  4.76657749e-01  5.74985227e-01  7.88810161e-01
   2.43957953e-01  9.36565772e-02]
 [ 2.97530545e-01  9.13650301e-01  3.03571890e-01  2.87994769e-01
   3.61353055e-02  2.48569687e-01  3.00406844e-01  2.93267121e-01
   9.08102844e-02 -5.13594647e-02  1.95141512e-01  4.09722842e-01
   2.00723620e-01  1.96842594e-01 -7.48745546e-02  1.43254348e-01
   1.00417464e-01  8.68939233e-02 -7.76098171e-02 -3.20065392e-03
   3.60554418e-01  1.00176056e+00  3.65741024e-01  3.46451160e-01
   2.25826298e-01  3.61467607e-01  3.69014138e-01  3.60387980e-01
   2.33437721e-01  2.19508204e-01]
 [ 9.66835698e-01  3.58669926e-01  9.72095315e-01  9.60808165e-01
   2.39273141e-01  5.91249531e-01  7.30849362e-01  8.57430035e-01
   2.19554419e-01 -2.05512393e-01  7.20950853e-01 -1.02421925e-01
   7.22300731e-01  7.62552799e-01 -2.17686332e-01  2.60974494e-01
   2.27079511e-01  3.95694673e-01 -1.03935708e-01 -1.00215889e-03
   9.95457402e-01  3.65741024e-01  1.00176056e+00  9.79299180e-01
   2.37191461e-01  5.30339746e-01  6.19432713e-01  8.17759288e-01
   2.69967228e-01  1.39201504e-01]
 [ 9.42739295e-01  3.44150782e-01  9.43207466e-01  9.60902082e-01
   2.07082304e-01  5.10500995e-01  6.77177350e-01  8.11055024e-01
   1.77505338e-01 -2.32262646e-01  7.52871625e-01 -8.33414586e-02
   7.31999440e-01  8.12836496e-01 -1.82516245e-01  1.99722335e-01
   1.88684259e-01  3.42873752e-01 -1.10537008e-01 -2.27761757e-02
   9.85746984e-01  3.46451160e-01  9.79299180e-01  1.00176056e+00
   2.09513547e-01  4.39067932e-01  5.44287093e-01  7.48734680e-01
   2.09513722e-01  7.97872577e-02]
 [ 1.19826732e-01  7.76398084e-02  1.50814456e-01  1.23740409e-01
   8.06742020e-01  5.66536837e-01  4.49612218e-01  4.53550155e-01
   4.27426215e-01  5.05831058e-01  1.42168410e-01 -7.37873381e-02
   1.30283361e-01  1.25610187e-01  3.15011078e-01  2.27794574e-01
   1.68777943e-01  2.15729735e-01 -1.26840915e-02  1.70868612e-01
   2.16955724e-01  2.25826298e-01  2.37191461e-01  2.09513547e-01
   1.00176056e+00  5.69186845e-01  5.19436186e-01  5.48655147e-01
   4.94707764e-01  6.18711558e-01]
 [ 4.14190751e-01  2.78318729e-01  4.56576647e-01  3.91097651e-01
   4.73300254e-01  8.67333351e-01  7.56297185e-01  6.68628771e-01
   4.74033112e-01  4.59605900e-01  2.87608629e-01 -9.26020990e-02
   3.42521416e-01  2.83755229e-01 -5.56559523e-02  6.79975390e-01
   4.85711424e-01  4.53685716e-01  6.03609620e-02  3.90845741e-01
   4.76657749e-01  3.61467607e-01  5.30339746e-01  4.39067932e-01
   5.69186845e-01  1.00176056e+00  8.93831781e-01  8.02490717e-01
   6.15522263e-01  8.11881713e-01]
 [ 5.27839123e-01  3.01555198e-01  5.64872009e-01  5.13508396e-01
   4.35691429e-01  8.17712354e-01  8.85659158e-01  7.53724145e-01
   4.34484601e-01  3.46843443e-01  3.81254678e-01 -6.90776223e-02
   4.19636314e-01  3.85778129e-01 -5.84010247e-02  6.40271956e-01
   6.63730620e-01  5.50559967e-01  3.71843990e-02  3.80643631e-01
   5.74985227e-01  3.69014138e-01  6.19432713e-01  5.44287093e-01
   5.19436186e-01  8.93831781e-01  1.00176056e+00  8.56939906e-01
   5.33457264e-01  6.87719567e-01]
 [ 7.45524434e-01  2.95835766e-01  7.72598608e-01  7.23287782e-01
   5.03939011e-01  8.17009092e-01  8.62839447e-01  9.11757700e-01
   4.31054176e-01  1.75634121e-01  5.31997297e-01 -1.19848153e-01
   5.55874162e-01  5.39113790e-01 -1.02186386e-01  4.84059046e-01
   4.41247742e-01  6.03510257e-01 -3.04669411e-02  2.15582894e-01
   7.88810161e-01  3.60387980e-01  8.17759288e-01  7.48734680e-01
   5.48655147e-01  8.02490717e-01  8.56939906e-01  1.00176056e+00
   5.03413227e-01  5.12013995e-01]
 [ 1.64241985e-01  1.05192783e-01  1.89447989e-01  1.43822678e-01
   3.95003689e-01  5.11121711e-01  4.10185014e-01  3.76405667e-01
   7.01057885e-01  3.34606745e-01  9.47092790e-02 -1.28440488e-01
   1.10123974e-01  7.42567956e-02 -1.07531080e-01  2.78367653e-01
   1.98136040e-01  1.43367633e-01  3.90088053e-01  1.11289544e-01
   2.43957953e-01  2.33437721e-01  2.69967228e-01  2.09513722e-01
   4.94707764e-01  6.15522263e-01  5.33457264e-01  5.03413227e-01
   1.00176056e+00  5.38795122e-01]
 [ 7.07832563e-03  1.19415220e-01  5.11083511e-02  3.74417763e-03
   5.00195447e-01  6.88592503e-01  5.15836457e-01  3.69310185e-01
   4.39185353e-01  7.68647654e-01  4.96466850e-02 -4.57349464e-02
   8.55829815e-02  1.75701742e-02  1.01658978e-01  5.92013208e-01
   4.40102736e-01  3.11201479e-01  7.82169401e-02  5.92369136e-01
   9.36565772e-02  2.19508204e-01  1.39201504e-01  7.97872577e-02
   6.18711558e-01  8.11881713e-01  6.87719567e-01  5.12013995e-01
   5.38795122e-01  1.00176056e+00]]

Eigenvalues and Eigenvectors

eig_vals, eig_vecs = np.linalg.eig(cov_mat)

print('\nEigenvalues \n%s' %eig_vals)

Eigenvalues 
[1.33049908e+01 5.70137460e+00 2.82291016e+00 1.98412752e+00
 1.65163324e+00 1.20948224e+00 6.76408882e-01 4.77456255e-01
 4.17628782e-01 3.51310875e-01 2.94433153e-01 2.61621161e-01
 2.41782421e-01 1.57286149e-01 9.43006956e-02 8.00034045e-02
 5.95036135e-02 5.27114222e-02 4.95647002e-02 1.33279057e-04
 7.50121413e-04 1.59213600e-03 6.91261258e-03 8.19203712e-03
 1.55085271e-02 1.80867940e-02 2.43836914e-02 2.74877113e-02
 3.12142606e-02 3.00256631e-02]
eig_val_df = pd.DataFrame(eig_vals, columns=['Eigenvalue'])
eig_val_df
Eigenvalue
0 13.304991
1 5.701375
2 2.822910
3 1.984128
4 1.651633
5 1.209482
6 0.676409
7 0.477456
8 0.417629
9 0.351311
10 0.294433
11 0.261621
12 0.241782
13 0.157286
14 0.094301
15 0.080003
16 0.059504
17 0.052711
18 0.049565
19 0.000133
20 0.000750
21 0.001592
22 0.006913
23 0.008192
24 0.015509
25 0.018087
26 0.024384
27 0.027488
28 0.031214
29 0.030026
print('Eigenvectors \n%s' %eig_vecs)
Eigenvectors 
[[ 2.18902444e-01 -2.33857132e-01 -8.53124284e-03  4.14089623e-02
  -3.77863538e-02  1.87407904e-02  1.24088340e-01  7.45229622e-03
  -2.23109764e-01  9.54864432e-02  4.14714866e-02  5.10674568e-02
   1.19672116e-02 -5.95061348e-02  5.11187749e-02 -1.50583883e-01
   2.02924255e-01  1.46712338e-01 -2.25384659e-01 -7.02414091e-01
   2.11460455e-01 -2.11194013e-01 -1.31526670e-01  1.29476396e-01
   1.92264989e-02 -1.82579441e-01  9.85526942e-02 -7.29289034e-02
  -4.96986642e-02  6.85700057e-02]
 [ 1.03724578e-01 -5.97060883e-02  6.45499033e-02 -6.03050001e-01
   4.94688505e-02 -3.21788366e-02 -1.13995382e-02 -1.30674825e-01
   1.12699390e-01  2.40934066e-01 -3.02243402e-01  2.54896423e-01
   2.03461333e-01  2.15600995e-02  1.07922421e-01 -1.57841960e-01
  -3.87061187e-02 -4.11029851e-02 -2.97886446e-02 -2.73661018e-04
  -1.05339342e-02  6.58114593e-05 -1.73573093e-02  2.45566636e-02
  -8.47459309e-02  9.87867898e-02  5.54997454e-04 -9.48006326e-02
  -2.44134993e-01 -4.48369467e-01]
 [ 2.27537293e-01 -2.15181361e-01 -9.31421972e-03  4.19830991e-02
  -3.73746632e-02  1.73084449e-02  1.14477057e-01  1.86872582e-02
  -2.23739213e-01  8.63856150e-02  1.67826374e-02  3.89261058e-02
   4.41095034e-02 -4.85138123e-02  3.99029358e-02 -1.14453955e-01
   1.94821310e-01  1.58317455e-01 -2.39595276e-01  6.89896968e-01
   3.83826098e-01 -8.43382663e-02 -1.15415423e-01  1.25255946e-01
  -2.70154137e-02 -1.16648876e-01  4.02447050e-02 -7.51604777e-02
  -1.76650122e-02  6.97690429e-02]
 [ 2.20994985e-01 -2.31076711e-01  2.86995259e-02  5.34337955e-02
  -1.03312514e-02 -1.88774796e-03  5.16534275e-02 -3.46736038e-02
  -1.95586014e-01  7.49564886e-02  1.10169643e-01  6.54375082e-02
   6.73757374e-02 -1.08308292e-02 -1.39669069e-02 -1.32448032e-01
   2.55705763e-01  2.66168105e-01  2.73221894e-02  3.29473482e-02
  -4.22794920e-01  2.72508323e-01  4.66612477e-01 -3.62727403e-01
   2.10040780e-01  6.98483369e-02 -7.77727342e-03 -9.75657781e-02
  -9.01437617e-02  1.84432785e-02]
 [ 1.42589694e-01  1.86113023e-01 -1.04291904e-01  1.59382765e-01
   3.65088528e-01 -2.86374497e-01  1.40668993e-01  2.88974575e-01
   6.42472194e-03 -6.92926813e-02 -1.37021842e-01  3.16727211e-01
   4.55736020e-02 -4.45064860e-01  1.18143364e-01 -2.04613247e-01
   1.67929914e-01 -3.52226802e-01  1.64565843e-01  4.84745766e-03
  -3.43466700e-03 -1.47926883e-03  6.96899233e-02  3.70036864e-02
  -2.89548850e-02  6.86974224e-02  2.06657211e-02 -6.38229479e-02
   1.71009601e-02  1.19491747e-01]
 [ 2.39285354e-01  1.51891610e-01 -7.40915709e-02  3.17945811e-02
  -1.17039713e-02 -1.41309489e-02 -3.09184960e-02  1.51396350e-01
  -1.67841425e-01  1.29362000e-02 -3.08009633e-01 -1.04017044e-01
   2.29281304e-01 -8.10105720e-03 -2.30899962e-01  1.70178367e-01
  -2.03077075e-02  7.79413843e-03 -2.84222358e-01 -4.46741863e-02
  -4.10167739e-02  5.46276696e-03  9.77487054e-02 -2.62808474e-01
  -3.96623231e-01 -1.04135518e-01 -5.23603957e-02  9.80775567e-02
   4.88686329e-01 -1.92621396e-01]
 [ 2.58400481e-01  6.01653628e-02  2.73383798e-03  1.91227535e-02
  -8.63754118e-02 -9.34418089e-03  1.07520443e-01  7.28272853e-02
   4.05910064e-02 -1.35602298e-01  1.24190245e-01  6.56534798e-02
   3.87090806e-01  1.89358699e-01  1.28283732e-01  2.69470206e-01
  -1.59835337e-03 -2.69681105e-02 -2.26636013e-03 -2.51386661e-02
  -1.00147876e-02 -4.55386379e-02  3.64808397e-01  5.48876170e-01
   9.69773167e-02  4.47410568e-02 -3.24870378e-01  1.85212003e-01
  -3.33870858e-02 -5.57175335e-03]
 [ 2.60853758e-01 -3.47675005e-02 -2.55635406e-02  6.53359443e-02
   4.38610252e-02 -5.20499505e-02  1.50482214e-01  1.52322414e-01
  -1.11971106e-01  8.05452775e-03 -7.24460264e-02  4.25892667e-02
   1.32138097e-01  2.44794768e-01  2.17099194e-01  3.80464095e-01
   3.45095087e-02 -8.28277367e-02  1.54972363e-01  1.07726530e-03
  -4.20694931e-03  8.88309714e-03 -4.54699351e-01 -3.87643377e-01
   1.86451602e-01  8.40276972e-02  5.14087968e-02  3.11852431e-01
  -2.35407606e-01  9.42381870e-03]
 [ 1.38166959e-01  1.90348770e-01 -4.02399363e-02  6.71249840e-02
   3.05941428e-01  3.56458461e-01  9.38911345e-02  2.31530989e-01
   2.56040084e-01  5.72069479e-01  1.63054081e-01 -2.88865504e-01
   1.89933673e-01 -3.07388563e-02  7.39617071e-02 -1.64661588e-01
  -1.91737848e-01  1.73397790e-01  5.88111647e-02  1.28037941e-03
  -7.56986244e-03 -1.43302642e-03 -1.51648349e-02  1.60440385e-02
   2.45836949e-02  1.93394733e-02  5.12005770e-02  1.84067326e-02
   2.60691555e-02  8.69384844e-02]
 [ 6.43633464e-02  3.66575471e-01 -2.25740897e-02  4.85867649e-02
   4.44243602e-02 -1.19430668e-01 -2.95760024e-01  1.77121441e-01
  -1.23740789e-01  8.11032072e-02 -3.80482687e-02  2.36358988e-01
   1.06239082e-01  3.77078865e-01 -5.17975705e-01 -4.07927860e-02
   5.02252456e-02  8.78673570e-02  5.81570509e-02  4.75568480e-03
   7.30143287e-03  6.31168651e-03 -1.01244946e-01  9.74048386e-02
   2.07221864e-01 -1.33260547e-01  8.46898562e-02 -2.87868885e-01
  -1.75637222e-01  7.62718362e-02]
 [ 2.05978776e-01 -1.05552152e-01  2.68481387e-01  9.79412418e-02
   1.54456496e-01 -2.56032561e-02 -3.12490037e-01 -2.25399674e-02
   2.49985002e-01 -4.95475941e-02 -2.53570194e-02 -1.66879153e-02
  -6.81952298e-02 -1.03474126e-02  1.10050711e-01  5.89057190e-02
  -1.39396866e-01 -2.36216532e-01 -1.75883308e-01  8.71109373e-03
   1.18442112e-01  1.92223890e-01  2.12982901e-01 -4.99770798e-02
   1.74930429e-01 -5.58701567e-01  2.64125317e-01  1.50274681e-01
  -9.08005031e-02 -8.63867747e-02]
 [ 1.74280281e-02  8.99796818e-02  3.74633665e-01 -3.59855528e-01
   1.91650506e-01 -2.87473145e-02  9.07553556e-02  4.75413139e-01
  -2.46645397e-01 -2.89142742e-01  3.44944458e-01 -3.06160423e-01
  -1.68222383e-01  1.08493473e-02 -3.27527212e-02 -3.45004006e-02
   4.39630156e-02 -9.85866201e-03 -3.60098518e-02  1.07103919e-03
  -8.77627920e-03  5.62261069e-03 -1.00928890e-02  1.12372419e-02
  -5.69864778e-02  2.42672970e-02  8.73880467e-04 -4.84569345e-02
  -7.16599878e-02 -2.17071967e-01]
 [ 2.11325916e-01 -8.94572342e-02  2.66645367e-01  8.89924146e-02
   1.20990220e-01  1.81071500e-03 -3.14640390e-01  1.18966905e-02
   2.27154024e-01 -1.14508236e-01 -1.67318771e-01 -1.01446828e-01
  -3.78439858e-02  4.55237175e-02  8.26808881e-03  2.65166513e-02
  -2.46356391e-02 -2.59288003e-02 -3.65701538e-01 -1.37293906e-02
  -6.10021933e-03 -2.63191868e-01  4.16915529e-02 -1.03653282e-01
  -7.29276412e-02  5.16750385e-01 -9.00742110e-02 -1.59352804e-01
  -1.77250625e-01  3.04950158e-01]
 [ 2.02869635e-01 -1.52292628e-01  2.16006528e-01  1.08205039e-01
   1.27574432e-01 -4.28639079e-02 -3.46679003e-01 -8.58051345e-02
   2.29160015e-01 -9.19278886e-02  5.16194632e-02 -1.76792177e-02
   5.60649318e-02 -8.35707181e-02  4.60243656e-02  4.11532265e-02
   3.34418173e-01  3.04906903e-01  4.16572314e-01 -1.10532603e-03
  -8.59259138e-02  4.20681051e-02 -3.13358657e-01  1.55304589e-01
  -1.31850405e-01 -2.24607172e-02 -9.82150746e-02 -6.42326151e-02
   2.74201148e-01 -1.92587786e-01]
 [ 1.45314521e-02  2.04430453e-01  3.08838979e-01  4.46641797e-02
   2.32065676e-01 -3.42917393e-01  2.44024056e-01 -5.73410232e-01
  -1.41924890e-01  1.60884609e-01  8.42062106e-02 -2.94710053e-01
   1.50441434e-01  2.01152530e-01 -1.85594647e-02 -5.80390613e-02
   1.39595006e-01 -2.31259943e-01  1.32600886e-02  1.60821086e-03
   1.77638619e-03 -9.79296328e-03 -9.05215355e-03  7.71755717e-03
  -3.12107028e-02  1.56311888e-02  5.98177179e-02 -5.05449015e-02
   9.00614773e-02  7.20987261e-02]
 [ 1.70393451e-01  2.32715896e-01  1.54779718e-01 -2.74693632e-02
  -2.79968156e-01  6.91975186e-02 -2.34635340e-02 -1.17460157e-01
  -1.45322810e-01  4.35048658e-02 -2.06885680e-01 -2.63456509e-01
   1.00401699e-02 -4.91755932e-01 -1.68209315e-01  1.89830896e-01
  -8.24647717e-03  1.00474235e-01  2.42448176e-01 -1.91562235e-03
   3.15813441e-03  1.53955481e-02  4.65360884e-02  4.97276317e-02
  -1.73164553e-01 -1.21777792e-01 -9.10387102e-03  4.52876920e-02
  -4.61098220e-01  1.40386572e-01]
 [ 1.53589790e-01  1.97207283e-01  1.76463743e-01  1.31687997e-03
  -3.53982091e-01  5.63432386e-02  2.08823790e-01 -6.05665008e-02
   3.58107079e-01 -1.41276243e-01  3.49517943e-01  2.51146975e-01
   1.58783192e-01 -1.34586924e-01 -2.50471408e-01 -1.25420649e-01
   8.46167156e-02 -1.95485228e-04 -1.26381025e-01  8.92652653e-03
   1.60785207e-02 -5.82097800e-03 -8.42247975e-02 -9.14549680e-02
  -1.59399802e-02  1.88205036e-01  3.87542329e-01  2.05212693e-01
   6.69461742e-02 -6.30479298e-02]
 [ 1.83417397e-01  1.30321560e-01  2.24657567e-01  7.40673350e-02
  -1.95548089e-01 -3.12244482e-02  3.69645937e-01  1.08319309e-01
   2.72519886e-01  8.62408470e-02 -3.42375908e-01 -6.45875122e-03
  -4.94026741e-01  1.99666719e-01 -6.20793442e-02 -1.98810346e-01
   1.08132263e-01  4.60549116e-02  1.21642969e-02  2.16019727e-03
  -2.39377870e-02  2.90093001e-02 -1.11655093e-02  1.79419192e-02
   1.29546547e-01 -1.09668978e-01 -3.51755074e-01  7.25453753e-02
   6.88682942e-02 -3.43753236e-02]
 [ 4.24984216e-02  1.83848000e-01  2.88584292e-01  4.40733510e-02
   2.52868765e-01  4.90245643e-01  8.03822539e-02 -2.20149279e-01
  -3.04077200e-01 -3.16529830e-01 -1.87844043e-01  3.20571348e-01
   1.03327412e-02  4.68643826e-02  1.13383199e-01 -1.57711497e-01
  -2.74059129e-01  1.87014764e-01  8.90392949e-02 -3.29389752e-04
  -5.22329189e-03  7.63652550e-03 -1.99759830e-02  1.72678486e-02
   1.95149333e-02  3.22620011e-03  4.23628949e-02  8.46544307e-02
   1.07385289e-01  9.76995265e-02]
 [ 1.02568322e-01  2.80092027e-01  2.11503764e-01  1.53047496e-02
  -2.63297438e-01 -5.31952674e-02 -1.91394973e-01 -1.11681884e-02
  -2.13722716e-01  3.67541918e-01  2.50624789e-01  2.76165974e-01
  -2.40458323e-01 -1.45652466e-01  3.53232211e-01  2.68553878e-01
  -1.22733398e-01 -5.98230982e-02 -8.66008430e-02 -1.79895682e-03
  -8.34191154e-03 -1.97564555e-02 -1.20365640e-02 -3.54889745e-02
   8.41712034e-02  7.51944193e-02 -8.57810992e-02 -2.44705083e-01
   2.22345297e-01 -6.28432814e-02]
 [ 2.27996634e-01 -2.19866379e-01 -4.75069900e-02  1.54172396e-02
   4.40659209e-03 -2.90684919e-04  9.70993602e-03 -4.26194163e-02
  -1.12141463e-01  7.73616428e-02  1.05067333e-01  3.96796652e-02
  -1.37890527e-01 -2.31012813e-02 -1.66567074e-01 -8.15605686e-02
  -2.40049982e-01 -2.16101353e-01 -1.36613039e-02  1.35643056e-01
  -6.35724917e-01 -4.12639581e-01 -1.78666740e-01  1.97054744e-01
  -7.07097238e-02 -1.56830365e-01  5.56767923e-02  9.62982088e-02
  -5.62690874e-03 -7.29389953e-03]
 [ 1.04469325e-01 -4.54672983e-02 -4.22978228e-02 -6.32807885e-01
   9.28834001e-02 -5.00080613e-02 -9.87074388e-03 -3.62516360e-02
   1.03341204e-01  2.95509413e-02  1.31572736e-02  7.97974499e-02
  -8.01454315e-02 -5.34307917e-02 -1.01115399e-01  1.85557852e-01
   6.93651855e-02  5.83984505e-02  7.58669276e-02 -1.02053601e-03
   1.72354925e-02  3.90250926e-04  2.14106944e-02 -3.64694332e-02
   1.18189721e-01 -1.18484602e-01  8.92289971e-03  1.11112024e-01
   3.00599798e-01  5.94440143e-01]
 [ 2.36639681e-01 -1.99878428e-01 -4.85465083e-02  1.38027944e-02
  -7.45415100e-03  8.50098715e-03  4.45726717e-04 -3.05585340e-02
  -1.09614364e-01  5.05083335e-02  5.10762807e-02 -8.98773800e-03
  -9.69657077e-02 -1.22193824e-02 -1.82755198e-01 -5.48570473e-02
  -2.34164147e-01 -1.88543592e-01 -9.08132490e-02 -7.97438536e-02
   2.29218029e-02  7.28680898e-01 -2.41031046e-01  2.44103670e-01
  -1.18034029e-01  2.37113167e-01 -6.33448296e-02 -1.72216251e-02
   1.10038577e-02  9.20235990e-02]
 [ 2.24870533e-01 -2.19351858e-01 -1.19023182e-02  2.58947492e-02
   2.73909030e-02 -2.51643821e-02 -6.78316595e-02 -7.93942456e-02
  -8.07324609e-02  6.99211523e-02  1.84598937e-01  4.80886567e-02
  -1.01160611e-01  6.68546458e-03 -3.14993600e-01 -9.06533944e-02
  -2.73399584e-01 -1.42064856e-01  4.10047202e-01 -3.97422838e-02
   4.44935933e-01 -2.38960316e-01  2.37162466e-01 -2.31359525e-01
   3.82899511e-02  1.44063033e-01 -1.90889625e-01  9.69598236e-02
   6.00473870e-02 -1.46790132e-01]
 [ 1.27952561e-01  1.72304352e-01 -2.59797613e-01  1.76522161e-02
   3.24435445e-01 -3.69255370e-01  1.08830886e-01 -2.05852191e-01
   1.12315904e-01 -1.28304659e-01  1.43890349e-01  5.65148662e-02
  -2.05130344e-01 -1.62235443e-01 -4.61258656e-02  1.45551659e-01
  -2.78030197e-01  5.01551675e-01 -2.34513845e-01 -4.58327731e-03
   7.38549171e-03  1.53524821e-03 -4.08535683e-02 -1.26024637e-02
   4.79647647e-02 -1.09901386e-02 -9.36901494e-02  6.82540931e-02
  -1.29723903e-01 -1.64849237e-01]
 [ 2.10095880e-01  1.43593173e-01 -2.36075625e-01 -9.13284153e-02
  -1.21804107e-01  4.77057929e-02 -1.40472938e-01 -8.40196588e-02
  -1.00677822e-01 -1.72133632e-01 -1.97420469e-01 -3.71662503e-01
   1.22793095e-02 -1.66470250e-01  4.99560142e-02 -1.53734861e-01
  -4.03712272e-03 -7.35745143e-02 -2.02007041e-02  1.28415624e-02
   3.56690391e-06 -4.86918180e-02 -7.05054136e-02  1.00463424e-01
   6.24384938e-01  1.86749953e-01  1.47920925e-01 -2.96764124e-02
   2.29280589e-01 -1.81374867e-01]
 [ 2.28767533e-01  9.79641143e-02 -1.73057335e-01 -7.39511797e-02
  -1.88518727e-01  2.83792555e-02  6.04880561e-02 -7.24678714e-02
   1.61908621e-01 -3.11638520e-01  1.85016760e-01 -8.70345324e-02
   2.17984329e-01  6.67989309e-02  2.04835886e-01 -2.15021948e-01
  -1.91313419e-01 -1.03907980e-01  4.57861197e-02 -4.02139168e-04
  -1.26757226e-02  1.76408967e-02 -1.42905801e-01 -2.66853781e-01
  -1.15770341e-01 -2.88852570e-01 -2.86433135e-01 -4.60426186e-01
  -4.64827918e-02  1.32100595e-01]
 [ 2.50885971e-01 -8.25723507e-03 -1.70344076e-01  6.00699571e-03
  -4.33320687e-02 -3.08734498e-02  1.67966619e-01  3.61707954e-02
   6.04884615e-02 -7.66482910e-02 -1.17772055e-01 -6.81253543e-02
  -2.54387490e-01  2.76418891e-01  1.69499607e-01  1.78141741e-01
  -7.54853164e-02  7.58138963e-02  2.60229625e-01  2.28844179e-03
   3.52404543e-02 -2.24756680e-02  2.30901389e-01  1.33574507e-01
  -2.63196337e-01  1.07340243e-01  5.67527797e-01 -2.99840557e-01
   3.30223397e-02 -8.86081478e-04]
 [ 1.22904556e-01  1.41883349e-01 -2.71312642e-01 -3.62506947e-02
   2.44558663e-01  4.98926784e-01  1.84906298e-02 -2.28225053e-01
   6.46378061e-02 -2.95630751e-02  1.57560248e-01  4.40335026e-02
  -2.56534905e-01 -5.35557351e-03 -1.39888394e-01  2.57894009e-01
   4.30658116e-01 -2.78713843e-01 -1.17250532e-01 -3.95443454e-04
   1.34042283e-02 -4.92048082e-03  2.27904438e-02 -2.81842956e-02
  -4.52996243e-02 -1.43818093e-02 -1.21343451e-01 -9.71448437e-02
  -1.16759236e-01 -1.62708549e-01]
 [ 1.31783943e-01  2.75339469e-01 -2.32791313e-01 -7.70534703e-02
  -9.44233510e-02 -8.02235245e-02 -3.74657626e-01 -4.83606666e-02
  -1.34174175e-01  1.26095791e-02  1.18283551e-01 -3.47316933e-02
  -1.72814238e-01  2.12104110e-01  2.56173195e-01 -4.05556492e-01
   1.59394300e-01  2.35647497e-02  1.14944811e-02 -1.89429245e-03
   1.14776603e-02  2.35621424e-02  5.99859979e-02 -4.52048188e-03
  -2.80133485e-01  3.78254532e-02 -7.62533821e-03  4.69471147e-01
  -1.04991974e-01  9.23439434e-02]]

PCA Visualization

# importing PCA module 
from sklearn.decomposition import PCA
pca = PCA (n_components=6)
pca.fit(scaled_data)
x_pca = pca.transform(scaled_data)

Scree Plot

sns.set_style ('whitegrid')
PC_values = np.arange(pca.n_components_) + 1
plt.plot(PC_values, pca.explained_variance_ratio_, 'o-', linewidth=2, color='green')
plt.title('Scree Plot')
plt.xlim(0,7)
plt.xlabel('Principal Component')
plt.ylabel('Variance Explained')
plt.xticks(ticks=range(1, 8, 1))  # Set the x-ticks with an interval of 1
plt.show()

Cumulative Variance Plot

sns.set_style('whitegrid')
# Plot the cumulative variance for each component
plt.figure(figsize = (8, 4))
components = np.arange(1, 7, step=1)
variance = np.cumsum(pca.explained_variance_ratio_)
plt.ylim(0.0,1.1)
plt.plot(components, variance, marker='o', color='green')
# plt.plot(components, variance, marker='o', linestyle='--', color='green')

plt.xlabel('Number of Components')
plt.ylabel('Cumulative variance (%)')
plt.title('The number of components needed to explain variance')
plt.show()

pca.explained_variance_ratio_.sum()
np.float64(0.887587963566906)
pca.get_covariance()
array([[ 1.08156343e+00,  3.25564716e-01,  9.41407673e-01,
         9.41300789e-01,  1.56852511e-01,  4.96533554e-01,
         6.72530754e-01,  7.98934415e-01,  1.46343436e-01,
        -2.91918938e-01,  7.22825981e-01, -1.14344516e-01,
         7.19123684e-01,  7.77820405e-01, -2.47738498e-01,
         2.00129486e-01,  2.03550841e-01,  3.70133453e-01,
        -1.24463551e-01, -5.83643764e-02,  9.44932010e-01,
         3.06532654e-01,  9.44600182e-01,  9.33429194e-01,
         1.26030234e-01,  4.25042454e-01,  5.41489854e-01,
         7.39922977e-01,  1.69140312e-01,  2.49400180e-02],
       [ 3.25564716e-01,  9.88571103e-01,  3.30461041e-01,
         3.23338871e-01, -2.51875070e-02,  2.27744152e-01,
         3.05940167e-01,  2.95738924e-01,  5.44863595e-02,
        -8.43105441e-02,  2.66330148e-01,  4.74127974e-01,
         2.74473807e-01,  2.55692355e-01, -1.50720779e-02,
         1.89430823e-01,  1.44939552e-01,  1.50198488e-01,
         1.23914887e-06,  4.88161300e-02,  3.59291001e-01,
         8.62537569e-01,  3.64882515e-01,  3.51942002e-01,
         8.98529661e-02,  2.89110719e-01,  3.17026535e-01,
         3.06968043e-01,  1.15160075e-01,  1.29585260e-01],
       [ 9.41407673e-01,  3.30461041e-01,  1.08570247e+00,
         9.42417263e-01,  1.93441607e-01,  5.39710737e-01,
         7.08126599e-01,  8.25205188e-01,  1.81616694e-01,
        -2.46225009e-01,  7.34953461e-01, -1.04023567e-01,
         7.33462019e-01,  7.84871291e-01, -2.24788884e-01,
         2.43031361e-01,  2.40813668e-01,  4.04049201e-01,
        -1.01692897e-01, -1.81284390e-02,  9.48135074e-01,
         3.13239505e-01,  9.50841073e-01,  9.36319032e-01,
         1.59799654e-01,  4.64086582e-01,  5.77792027e-01,
         7.67968363e-01,  1.97765195e-01,  6.89850961e-02],
       [ 9.41300789e-01,  3.23338871e-01,  9.42417263e-01,
         1.08824164e+00,  1.78234056e-01,  4.98605582e-01,
         6.77898970e-01,  8.07444956e-01,  1.55394300e-01,
        -2.81179851e-01,  7.62820680e-01, -7.44559147e-02,
         7.57140226e-01,  8.11259695e-01, -1.95160988e-01,
         2.10129486e-01,  2.12555582e-01,  3.93853441e-01,
        -9.09746465e-02, -3.94979415e-02,  9.43600212e-01,
         2.95412154e-01,  9.42990092e-01,  9.37308693e-01,
         1.28265771e-01,  4.01347136e-01,  5.21940187e-01,
         7.28712432e-01,  1.45968333e-01,  5.72488968e-03],
       [ 1.56852511e-01, -2.51875070e-02,  1.93441607e-01,
         1.78234056e-01,  9.66053415e-01,  6.34287058e-01,
         5.07373062e-01,  5.20133714e-01,  5.46983019e-01,
         5.81831357e-01,  3.24111478e-01,  2.98263375e-02,
         3.21839377e-01,  2.78052145e-01,  3.98533353e-01,
         3.33705387e-01,  2.30915292e-01,  3.39769952e-01,
         1.91703094e-01,  2.98775901e-01,  2.20766641e-01,
         4.14956784e-02,  2.48259261e-01,  2.28840783e-01,
         7.88325477e-01,  5.00388699e-01,  4.44807972e-01,
         4.97349918e-01,  4.24980666e-01,  5.47267058e-01],
       [ 4.96533554e-01,  2.27744152e-01,  5.39710737e-01,
         4.98605582e-01,  6.34287058e-01,  1.03980984e+00,
         8.67025617e-01,  8.01246021e-01,  5.97134962e-01,
         5.20710155e-01,  5.09725935e-01,  3.24016491e-02,
         5.40181563e-01,  4.72220256e-01,  1.60757176e-01,
         7.04832049e-01,  6.20790369e-01,  6.51462538e-01,
         2.22509336e-01,  5.23984861e-01,  5.42760449e-01,
         2.61107074e-01,  5.87057057e-01,  5.26855539e-01,
         6.01083696e-01,  8.26078562e-01,  8.36322404e-01,
         8.18754543e-01,  5.46918841e-01,  6.92301471e-01],
       [ 6.72530754e-01,  3.05940167e-01,  7.08126599e-01,
         6.77898970e-01,  5.07373062e-01,  8.67025617e-01,
         1.05193692e+00,  8.72611154e-01,  4.92262441e-01,
         3.38523606e-01,  6.50873010e-01,  5.47255199e-02,
         6.78211471e-01,  6.28317067e-01,  9.48027231e-02,
         6.93486270e-01,  6.35407645e-01,  6.97609842e-01,
         1.71845962e-01,  4.79589796e-01,  7.01628418e-01,
         3.05917128e-01,  7.39111593e-01,  6.89045977e-01,
         4.52959684e-01,  7.73180063e-01,  8.31402906e-01,
         8.55587912e-01,  4.25380263e-01,  5.49098934e-01],
       [ 7.98934415e-01,  2.95738924e-01,  8.25205188e-01,
         8.07444956e-01,  5.20133714e-01,  8.01246021e-01,
         8.72611154e-01,  1.05866340e+00,  4.48946016e-01,
         1.67137218e-01,  7.32771858e-01, -1.22764949e-02,
         7.43327404e-01,  7.35144357e-01,  2.90355316e-02,
         5.03806868e-01,  4.50759409e-01,  5.86944269e-01,
         8.54015499e-02,  2.70915784e-01,  8.30855199e-01,
         3.03154423e-01,  8.55272436e-01,  8.21748313e-01,
         4.68049232e-01,  6.88157336e-01,  7.55522068e-01,
         8.74372333e-01,  3.97306007e-01,  4.04193473e-01],
       [ 1.46343436e-01,  5.44863595e-02,  1.81616694e-01,
         1.55394300e-01,  5.46983019e-01,  5.97134962e-01,
         4.92262441e-01,  4.48946016e-01,  8.83405661e-01,
         4.88557243e-01,  3.07708353e-01,  1.19614367e-01,
         3.28534772e-01,  2.40512688e-01,  1.91638752e-01,
         4.33086475e-01,  3.27051251e-01,  3.54183200e-01,
         5.49847100e-01,  3.20117786e-01,  1.90936684e-01,
         9.20377145e-02,  2.25592717e-01,  1.84397469e-01,
         4.54625515e-01,  5.10172452e-01,  4.52985364e-01,
         4.34924218e-01,  7.01633270e-01,  4.72514568e-01],
       [-2.91918938e-01, -8.43105441e-02, -2.46225009e-01,
        -2.81179851e-01,  5.81831357e-01,  5.20710155e-01,
         3.38523606e-01,  1.67137218e-01,  4.88557243e-01,
         9.66462680e-01, -3.44801269e-02,  1.59799780e-01,
        -3.57752538e-03, -1.27894263e-01,  4.73666545e-01,
         5.79282441e-01,  4.90602813e-01,  4.04945499e-01,
         3.51634381e-01,  6.35522779e-01, -2.50401889e-01,
        -4.56616514e-02, -2.04335461e-01, -2.48501660e-01,
         5.45853737e-01,  4.62560491e-01,  3.81101060e-01,
         2.07626742e-01,  3.59262141e-01,  6.84002885e-01],
       [ 7.22825981e-01,  2.66330148e-01,  7.34953461e-01,
         7.62820680e-01,  3.24111478e-01,  5.09725935e-01,
         6.50873010e-01,  7.32771858e-01,  3.07708353e-01,
        -3.44801269e-02,  1.00899957e+00,  2.44763092e-01,
         8.61791821e-01,  8.45504685e-01,  2.13415127e-01,
         3.64712328e-01,  3.43881042e-01,  5.51225706e-01,
         2.68694449e-01,  2.08803508e-01,  7.16881470e-01,
         1.88297271e-01,  7.24537446e-01,  7.41678001e-01,
         1.47738858e-01,  2.69187785e-01,  3.80075463e-01,
         5.54287963e-01,  9.14861462e-02, -5.65308889e-03],
       [-1.14344516e-01,  4.74127974e-01, -1.04023567e-01,
        -7.44559147e-02,  2.98263375e-02,  3.24016491e-02,
         5.47255199e-02, -1.22764949e-02,  1.19614367e-01,
         1.59799780e-01,  2.44763092e-01,  8.61307733e-01,
         2.47601418e-01,  1.53873516e-01,  4.64051890e-01,
         2.46084921e-01,  2.06120157e-01,  2.28231596e-01,
         4.20636142e-01,  2.91439338e-01, -1.14378089e-01,
         4.06918662e-01, -1.06072420e-01, -7.85921724e-02,
        -5.19054264e-02, -9.33197877e-02, -7.87951059e-02,
        -1.33320547e-01, -9.39008741e-02, -3.96787689e-02],
       [ 7.19123684e-01,  2.74473807e-01,  7.33462019e-01,
         7.57140226e-01,  3.21839377e-01,  5.40181563e-01,
         6.78211471e-01,  7.43327404e-01,  3.28534772e-01,
        -3.57752538e-03,  8.61791821e-01,  2.47601418e-01,
         1.00057777e+00,  8.35599994e-01,  2.08695664e-01,
         4.13408357e-01,  3.91000450e-01,  5.82444702e-01,
         2.87569036e-01,  2.51551602e-01,  7.13001161e-01,
         1.96067208e-01,  7.23943449e-01,  7.35384613e-01,
         1.45931676e-01,  3.07053467e-01,  4.17381863e-01,
         5.73235317e-01,  1.17021610e-01,  3.31069496e-02],
       [ 7.77820405e-01,  2.55692355e-01,  7.84871291e-01,
         8.11259695e-01,  2.78052145e-01,  4.72220256e-01,
         6.28317067e-01,  7.35144357e-01,  2.40512688e-01,
        -1.27894263e-01,  8.45504685e-01,  1.53873516e-01,
         8.35599994e-01,  9.84800040e-01,  1.13965438e-01,
         2.85044327e-01,  2.74865624e-01,  4.88147312e-01,
         1.60075041e-01,  1.14004534e-01,  7.71498680e-01,
         1.86969151e-01,  7.74041231e-01,  7.91001801e-01,
         1.28252762e-01,  2.58833708e-01,  3.75341812e-01,
         5.72583691e-01,  6.79431393e-02, -4.59878726e-02],
       [-2.47738498e-01, -1.50720779e-02, -2.24788884e-01,
        -1.95160988e-01,  3.98533353e-01,  1.60757176e-01,
         9.48027231e-02,  2.90355316e-02,  1.91638752e-01,
         4.73666545e-01,  2.13415127e-01,  4.64051890e-01,
         2.08695664e-01,  1.13965438e-01,  8.42475322e-01,
         2.99565201e-01,  2.55078074e-01,  3.18304567e-01,
         3.68793154e-01,  4.41654881e-01, -2.42751856e-01,
        -6.79449217e-02, -2.26751640e-01, -1.95234582e-01,
         2.55674334e-01, -5.98422790e-02, -7.08164006e-02,
        -1.05881968e-01, -1.40029269e-01,  1.35320730e-01],
       [ 2.00129486e-01,  1.89430823e-01,  2.43031361e-01,
         2.10129486e-01,  3.33705387e-01,  7.04832049e-01,
         6.93486270e-01,  5.03806868e-01,  4.33086475e-01,
         5.79282441e-01,  3.64712328e-01,  2.46084921e-01,
         4.13408357e-01,  2.85044327e-01,  2.99565201e-01,
         1.01330522e+00,  8.26802157e-01,  7.49986132e-01,
         3.80099719e-01,  7.86990801e-01,  2.04514063e-01,
         1.46994116e-01,  2.55083945e-01,  2.00856437e-01,
         2.36690373e-01,  6.18751609e-01,  6.53660380e-01,
         4.97101621e-01,  2.81942181e-01,  5.93173547e-01],
       [ 2.03550841e-01,  1.44939552e-01,  2.40813668e-01,
         2.12555582e-01,  2.30915292e-01,  6.20790369e-01,
         6.35407645e-01,  4.50759409e-01,  3.27051251e-01,
         4.90602813e-01,  3.43881042e-01,  2.06120157e-01,
         3.91000450e-01,  2.74865624e-01,  2.55078074e-01,
         8.26802157e-01,  9.43794078e-01,  7.22973450e-01,
         3.18508738e-01,  7.52285154e-01,  1.95058415e-01,
         8.71234385e-02,  2.40829209e-01,  1.92388920e-01,
         1.28984370e-01,  5.38313590e-01,  5.90414620e-01,
         4.38915556e-01,  1.74834959e-01,  5.03689511e-01],
       [ 3.70133453e-01,  1.50198488e-01,  4.04049201e-01,
         3.93853441e-01,  3.39769952e-01,  6.51462538e-01,
         6.97609842e-01,  5.86944269e-01,  3.54183200e-01,
         4.04945499e-01,  5.51225706e-01,  2.28231596e-01,
         5.82444702e-01,  4.88147312e-01,  3.18304567e-01,
         7.49986132e-01,  7.22973450e-01,  8.82372072e-01,
         3.24682269e-01,  6.59729956e-01,  3.63365585e-01,
         8.16377201e-02,  4.01083311e-01,  3.73114340e-01,
         1.96144624e-01,  4.91018623e-01,  5.63737126e-01,
         5.11802029e-01,  1.42240798e-01,  3.97510384e-01],
       [-1.24463551e-01,  1.23914887e-06, -1.01692897e-01,
        -9.09746465e-02,  1.91703094e-01,  2.22509336e-01,
         1.71845962e-01,  8.54015499e-02,  5.49847100e-01,
         3.51634381e-01,  2.68694449e-01,  4.20636142e-01,
         2.87569036e-01,  1.60075041e-01,  3.68793154e-01,
         3.80099719e-01,  3.18508738e-01,  3.24682269e-01,
         9.32906041e-01,  3.80211484e-01, -1.31204117e-01,
        -6.29009408e-02, -1.06795787e-01, -1.08267888e-01,
        -2.14383602e-02,  5.26472002e-02,  3.10215466e-02,
        -3.21744943e-02,  3.55699823e-01,  9.06561869e-02],
       [-5.83643764e-02,  4.88161300e-02, -1.81284390e-02,
        -3.94979415e-02,  2.98775901e-01,  5.23984861e-01,
         4.79589796e-01,  2.70915784e-01,  3.20117786e-01,
         6.35522779e-01,  2.08803508e-01,  2.91439338e-01,
         2.51551602e-01,  1.14004534e-01,  4.41654881e-01,
         7.86990801e-01,  7.52285154e-01,  6.59729956e-01,
         3.80211484e-01,  9.43672839e-01, -6.28411103e-02,
        -5.71125775e-03, -1.64568483e-02, -5.34964118e-02,
         1.86175086e-01,  4.16566296e-01,  4.34588792e-01,
         2.48422954e-01,  1.06344662e-01,  5.14666043e-01],
       [ 9.44932010e-01,  3.59291001e-01,  9.48135074e-01,
         9.43600212e-01,  2.20766641e-01,  5.42760449e-01,
         7.01628418e-01,  8.30855199e-01,  1.90936684e-01,
        -2.50401889e-01,  7.16881470e-01, -1.14378089e-01,
         7.13001161e-01,  7.71498680e-01, -2.42751856e-01,
         2.04514063e-01,  1.95058415e-01,  3.63365585e-01,
        -1.31204117e-01, -6.28411103e-02,  1.10039923e+00,
         3.57181555e-01,  9.61145815e-01,  9.45546817e-01,
         2.09258938e-01,  4.81685560e-01,  5.85538209e-01,
         7.84701505e-01,  2.30434164e-01,  8.57774446e-02],
       [ 3.06532654e-01,  8.62537569e-01,  3.13239505e-01,
         2.95412154e-01,  4.14956784e-02,  2.61107074e-01,
         3.05917128e-01,  3.03154423e-01,  9.20377145e-02,
        -4.56616514e-02,  1.88297271e-01,  4.06918662e-01,
         1.96067208e-01,  1.86969151e-01, -6.79449217e-02,
         1.46994116e-01,  8.71234385e-02,  8.16377201e-02,
        -6.29009408e-02, -5.71125775e-03,  3.57181555e-01,
         1.05460395e+00,  3.63881334e-01,  3.41045851e-01,
         2.06551608e-01,  3.66305762e-01,  3.67770993e-01,
         3.55007849e-01,  2.13875270e-01,  2.18953086e-01],
       [ 9.44600182e-01,  3.64882515e-01,  9.50841073e-01,
         9.42990092e-01,  2.48259261e-01,  5.87057057e-01,
         7.39111593e-01,  8.55272436e-01,  2.25592717e-01,
        -2.04335461e-01,  7.24537446e-01, -1.06072420e-01,
         7.23943449e-01,  7.74041231e-01, -2.26751640e-01,
         2.55083945e-01,  2.40829209e-01,  4.01083311e-01,
        -1.06795787e-01, -1.64568483e-02,  9.61145815e-01,
         3.63881334e-01,  1.10692507e+00,  9.45981290e-01,
         2.34356525e-01,  5.25110744e-01,  6.26802904e-01,
         8.13272814e-01,  2.61357456e-01,  1.33191039e-01],
       [ 9.33429194e-01,  3.51942002e-01,  9.36319032e-01,
         9.37308693e-01,  2.28840783e-01,  5.26855539e-01,
         6.89045977e-01,  8.21748313e-01,  1.84397469e-01,
        -2.48501660e-01,  7.41678001e-01, -7.85921724e-02,
         7.35384613e-01,  7.91001801e-01, -1.95234582e-01,
         2.00856437e-01,  1.92388920e-01,  3.73114340e-01,
        -1.08267888e-01, -5.34964118e-02,  9.45546817e-01,
         3.41045851e-01,  9.45981290e-01,  1.07741126e+00,
         2.01099729e-01,  4.43643983e-01,  5.51148377e-01,
         7.57517859e-01,  1.94402209e-01,  5.62764752e-02],
       [ 1.26030234e-01,  8.98529661e-02,  1.59799654e-01,
         1.28265771e-01,  7.88325477e-01,  6.01083696e-01,
         4.52959684e-01,  4.68049232e-01,  4.54625515e-01,
         5.45853737e-01,  1.47738858e-01, -5.19054264e-02,
         1.45931676e-01,  1.28252762e-01,  2.55674334e-01,
         2.36690373e-01,  1.28984370e-01,  1.96144624e-01,
        -2.14383602e-02,  1.86175086e-01,  2.09258938e-01,
         2.06551608e-01,  2.34356525e-01,  2.01099729e-01,
         1.00772979e+00,  5.74461261e-01,  4.93771711e-01,
         5.24517068e-01,  4.53822310e-01,  6.30863597e-01],
       [ 4.25042454e-01,  2.89110719e-01,  4.64086582e-01,
         4.01347136e-01,  5.00388699e-01,  8.26078562e-01,
         7.73180063e-01,  6.88157336e-01,  5.10172452e-01,
         4.62560491e-01,  2.69187785e-01, -9.33197877e-02,
         3.07053467e-01,  2.58833708e-01, -5.98422790e-02,
         6.18751609e-01,  5.38313590e-01,  4.91018623e-01,
         5.26472002e-02,  4.16566296e-01,  4.81685560e-01,
         3.66305762e-01,  5.25110744e-01,  4.43643983e-01,
         5.74461261e-01,  1.02619322e+00,  8.69102813e-01,
         8.00543973e-01,  6.11538700e-01,  7.57990415e-01],
       [ 5.41489854e-01,  3.17026535e-01,  5.77792027e-01,
         5.21940187e-01,  4.44807972e-01,  8.36322404e-01,
         8.31402906e-01,  7.55522068e-01,  4.52985364e-01,
         3.81101060e-01,  3.80075463e-01, -7.87951059e-02,
         4.17381863e-01,  3.75341812e-01, -7.08164006e-02,
         6.53660380e-01,  5.90414620e-01,  5.63737126e-01,
         3.10215466e-02,  4.34588792e-01,  5.85538209e-01,
         3.67770993e-01,  6.26802904e-01,  5.51148377e-01,
         4.93771711e-01,  8.69102813e-01,  1.02803607e+00,
         8.40711840e-01,  5.23773326e-01,  6.89880957e-01],
       [ 7.39922977e-01,  3.06968043e-01,  7.67968363e-01,
         7.28712432e-01,  4.97349918e-01,  8.18754543e-01,
         8.55587912e-01,  8.74372333e-01,  4.34924218e-01,
         2.07626742e-01,  5.54287963e-01, -1.33320547e-01,
         5.73235317e-01,  5.72583691e-01, -1.05881968e-01,
         4.97101621e-01,  4.38915556e-01,  5.11802029e-01,
        -3.21744943e-02,  2.48422954e-01,  7.84701505e-01,
         3.55007849e-01,  8.13272814e-01,  7.57517859e-01,
         5.24517068e-01,  8.00543973e-01,  8.40711840e-01,
         1.05149800e+00,  4.90489653e-01,  5.36938333e-01],
       [ 1.69140312e-01,  1.15160075e-01,  1.97765195e-01,
         1.45968333e-01,  4.24980666e-01,  5.46918841e-01,
         4.25380263e-01,  3.97306007e-01,  7.01633270e-01,
         3.59262141e-01,  9.14861462e-02, -9.39008741e-02,
         1.17021610e-01,  6.79431393e-02, -1.40029269e-01,
         2.81942181e-01,  1.74834959e-01,  1.42240798e-01,
         3.55699823e-01,  1.06344662e-01,  2.30434164e-01,
         2.13875270e-01,  2.61357456e-01,  1.94402209e-01,
         4.53822310e-01,  6.11538700e-01,  5.23773326e-01,
         4.90489653e-01,  1.00780968e+00,  5.27336361e-01],
       [ 2.49400180e-02,  1.29585260e-01,  6.89850961e-02,
         5.72488968e-03,  5.47267058e-01,  6.92301471e-01,
         5.49098934e-01,  4.04193473e-01,  4.72514568e-01,
         6.84002885e-01, -5.65308889e-03, -3.96787689e-02,
         3.31069496e-02, -4.59878726e-02,  1.35320730e-01,
         5.93173547e-01,  5.03689511e-01,  3.97510384e-01,
         9.06561869e-02,  5.14666043e-01,  8.57774446e-02,
         2.18953086e-01,  1.33191039e-01,  5.62764752e-02,
         6.30863597e-01,  7.57990415e-01,  6.89880957e-01,
         5.36938333e-01,  5.27336361e-01,  9.67589384e-01]])
x_pca.shape
(569, 6)
x_pca
array([[ 9.19283683,  1.94858307, -1.12316616, -3.6337309 ,  1.19511012,
         1.41142445],
       [ 2.3878018 , -3.76817174, -0.52929269, -1.11826386, -0.62177498,
         0.02865635],
       [ 5.73389628, -1.0751738 , -0.55174759, -0.91208267,  0.1770859 ,
         0.54145215],
       ...,
       [ 1.25617928, -1.90229671,  0.56273053,  2.08922702, -1.80999133,
        -0.53444719],
       [10.37479406,  1.67201011, -1.87702933,  2.35603113,  0.03374193,
         0.56793647],
       [-5.4752433 , -0.67063679,  1.49044308,  2.29915714,  0.18470331,
         1.61783736]], shape=(569, 6))
# Convert to dataframe
component_names = [f"PC{i+1}" for i in range(x_pca.shape[1])]
x_pca_df = pd.DataFrame(x_pca, columns=component_names)
x_pca_df.head()
PC1 PC2 PC3 PC4 PC5 PC6
0 9.192837 1.948583 -1.123166 -3.633731 1.195110 1.411424
1 2.387802 -3.768172 -0.529293 -1.118264 -0.621775 0.028656
2 5.733896 -1.075174 -0.551748 -0.912083 0.177086 0.541452
3 7.122953 10.275589 -3.232790 -0.152547 2.960878 3.053422
4 3.935302 -1.948072 1.389767 -2.940639 -0.546747 -1.226495
loadings = pd.DataFrame(
    pca.components_.T,  # transpose the matrix of loadings
    columns=component_names,  # so the columns are the principal components
    index=cancer.feature_names,  # and the rows are the original features
)
loadings
PC1 PC2 PC3 PC4 PC5 PC6
mean radius 0.218902 -0.233857 -0.008531 -0.041409 -0.037786 0.018741
mean texture 0.103725 -0.059706 0.064550 0.603050 0.049469 -0.032179
mean perimeter 0.227537 -0.215181 -0.009314 -0.041983 -0.037375 0.017308
mean area 0.220995 -0.231077 0.028700 -0.053434 -0.010331 -0.001888
mean smoothness 0.142590 0.186113 -0.104292 -0.159383 0.365089 -0.286374
mean compactness 0.239285 0.151892 -0.074092 -0.031795 -0.011704 -0.014131
mean concavity 0.258400 0.060165 0.002734 -0.019123 -0.086375 -0.009344
mean concave points 0.260854 -0.034768 -0.025564 -0.065336 0.043861 -0.052050
mean symmetry 0.138167 0.190349 -0.040240 -0.067125 0.305941 0.356458
mean fractal dimension 0.064363 0.366575 -0.022574 -0.048587 0.044424 -0.119431
radius error 0.205979 -0.105552 0.268481 -0.097941 0.154456 -0.025603
texture error 0.017428 0.089980 0.374634 0.359856 0.191651 -0.028747
perimeter error 0.211326 -0.089457 0.266645 -0.088992 0.120990 0.001811
area error 0.202870 -0.152293 0.216007 -0.108205 0.127574 -0.042864
smoothness error 0.014531 0.204430 0.308839 -0.044664 0.232066 -0.342917
compactness error 0.170393 0.232716 0.154780 0.027469 -0.279968 0.069198
concavity error 0.153590 0.197207 0.176464 -0.001317 -0.353982 0.056343
concave points error 0.183417 0.130322 0.224658 -0.074067 -0.195548 -0.031224
symmetry error 0.042498 0.183848 0.288584 -0.044073 0.252869 0.490246
fractal dimension error 0.102568 0.280092 0.211504 -0.015305 -0.263297 -0.053195
worst radius 0.227997 -0.219866 -0.047507 -0.015417 0.004407 -0.000291
worst texture 0.104469 -0.045467 -0.042298 0.632808 0.092883 -0.050008
worst perimeter 0.236640 -0.199878 -0.048547 -0.013803 -0.007454 0.008501
worst area 0.224871 -0.219352 -0.011902 -0.025895 0.027391 -0.025164
worst smoothness 0.127953 0.172304 -0.259798 -0.017652 0.324435 -0.369255
worst compactness 0.210096 0.143593 -0.236076 0.091328 -0.121804 0.047706
worst concavity 0.228768 0.097964 -0.173057 0.073951 -0.188519 0.028379
worst concave points 0.250886 -0.008257 -0.170344 -0.006007 -0.043332 -0.030873
worst symmetry 0.122905 0.141883 -0.271313 0.036251 0.244559 0.498927
worst fractal dimension 0.131784 0.275339 -0.232791 0.077053 -0.094423 -0.080224
sns.set_style('whitegrid')
plt.figure(figsize=(12,8))
plt.scatter(x_pca[:,0], x_pca[:,1],
            c = cancer['target'], cmap='plasma')
plt.xlabel('PCA1')
plt.ylabel('PCA2')
plt.show()

Using Principal Component Scores for Other Machine Learning Algorithm

x_pca_df2 = x_pca_df.copy()
x_pca_df2['target'] = cancer.target # Adding the target variable with the PCA values 
x_pca_df2.sample(5)
PC1 PC2 PC3 PC4 PC5 PC6 target
336 -2.393276 0.990031 -0.757510 -1.554983 -1.431458 -0.343190 1
234 -4.036607 1.162546 0.189748 -0.940517 0.565599 -0.806739 1
178 -4.975702 -3.386205 0.439838 1.577570 -1.033796 0.926782 1
220 -2.373502 -0.733403 -1.526027 -1.853330 -1.183118 -0.857871 1
530 -1.530101 0.405218 0.604465 0.347171 0.786047 -1.102131 1
x_pca_df2['target'].value_counts()
target
1    357
0    212
Name: count, dtype: int64
final_df = x_pca_df2.copy()
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
logreg = LogisticRegression()
# Feature and Target Vectors 
Xlog = final_df.drop(['target'], axis=1)
ylog = final_df['target']
# Training and Testing Split 
Xlog_train, Xlog_test, ylog_train, ylog_test = train_test_split(Xlog, ylog, test_size=0.20, random_state=420)
logreg.fit(Xlog_train, ylog_train)
LogisticRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
ylog_predict = logreg.predict(Xlog_test)
from sklearn.metrics import accuracy_score
accuracy_score(ylog_test, ylog_predict)
0.9649122807017544

Logistic Regression with Original Dataset

# For original dataset 
Xorg = cancer['data']
yorg = cancer['target']


# for original dataset 
Xorg_train, Xorg_test, yorg_train, yorg_test = train_test_split(Xorg, yorg, test_size=0.20, random_state=500) # for original dataset 


# for original dataset 
logreg.fit(Xorg_train, yorg_train)


# for original dataset 
yorg_predict = logreg.predict(Xorg_test)
# for original dataset 
accuracy_score(yorg_test, yorg_predict)
0.9473684210526315

The accuracy score in original dataset is about 95%, which is less than principal component score result where accuracy is about 98%.

Conclusion

Back to top