PCA – Analýza hlavních komponent

Informací je někdy víc než moc a kdo dostal někdy od šéfa za úkol nakreslit do grafu funkci o dvou stech proměnných, pěkně se zapotil, než našel kouzelnou metodu PCA. To má za úkol ‘shrinknout’ libovolný počet porměnných (respektive vlivů) na obvyklé 2, které se dají hezky vyobrazit.

Squeze

Dimensionality Reduction – The Math of Intelligence #5

Tady je videíčko od pána Ravala aneb if your mama’s so fat, she’s not embeddable in 3D space…

StatQuest: Principal Component Analysis (PCA), Step-by-Step

Tady je videíčko od Statquest, které jde více do detailu samotného mechanismu PCA

Na závěr to nejdůležitější. Samotný kód v Pythonu

#%%
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.decomposition import PCA

# Cteni dat z csv do dataframu
dat = pd.read_csv("data/data.csv")

# Prevedeni na potrebny format - transformace záleží csv
datta = dat.T
data = datta.values

# PCA
datauT = data [1:,:]
datau = datauT.T
pca_2 = PCA(2)

plot_columnsT = pca_2.fit_transform(datau)
plot_columns = plot_columnsT.T
pca = plot_columns.tolist()

plt.subplot(1, 2, 1)
plt.plot(pca[0]);plt.grid(); plt.xlabel('t')
plt.ylabel('Kanonická proměnná 1')

plt.subplot(1, 2, 2)
plt.plot(pca[1]);plt.grid(); plt.xlabel('t')
plt.ylabel('Kanonická proměnná 2')

plt.suptitle("PCA - Analýza hlavních komponent", fontsize=20)
plt.tight_layout()
plt.subplots_adjust(top=0.88)
plt.show()

Použitá data jsou zde data.csv

Výsledek je vidět na dalším obrázku. Z původních 6 dimenzí nyní máme 2, které nesou většinu důležitých informací jako data původní.
PCA

 

Originální data pro porovnání potom vypadala takhle.

Data

 

Napsat komentář

Vaše emailová adresa nebude zveřejněna.