Redukce dimenzionality (PCA)
Redukce dimenzionality je proces snižování počtu vstupních proměnných (rysů/dimenzí) v datové sadě. Cílem je zjednodušit data, odstranit šum a umožnit vizualizaci při zachování co největšího množství původních informací.
Nejznámější a nejpoužívanější lineární metodou pro tento úkol je Analýza hlavních komponent (Principal Component Analysis – PCA).
1. Proč redukovat dimenze?
Prokletí dimenzionality (Curse of Dimensionality): S rostoucím počtem dimenzí se data stávají „řídkými“, což zhoršuje výkon mnoha algoritmů (např.
K-Means nebo k-NN).
Vizualizace: Lidé dokáží vnímat data maximálně ve 3D. PCA umožní promítnout např. 100-rozměrná data do 2D grafu.
Odstranění multikolinearity: PCA vytvoří nové rysy, které mezi sebou nejsou korelované.
Zrychlení výpočtů: Méně dat znamená rychlejší trénování modelů a nižší nároky na paměť.
2. Jak PCA funguje? (Princip)
PCA matematicky transformuje data do nového souřadnicového systému:
1. **Hledání směru největšího rozptylu:** Algoritmus najde směr (osu), ve kterém se data nejvíce mění. Tato osa se nazývá **První hlavní komponenta (PC1)**.
2. **Ortogonalita:** Druhá hlavní komponenta (**PC2**) musí být kolmá na první a musí vysvětlovat druhý největší podíl zbývajícího rozptylu.
3. **Projekce:** Původní data jsou promítnuta na tyto nové osy.
3. Postup výpočtu (Algoritmus)
Pro zájemce o matematické pozadí probíhá PCA v těchto krocích:
Standardizace: Data musí mít průměr 0 a rozptyl 1 (jinak by proměnné s velkými čísly dominovaly).
Výpočet kovarianční matice: Určení vztahů mezi všemi dvojicemi rysů.
Výpočet vlastních čísel (eigenvalues) a vlastních vektorů (eigenvectors): Ty určují směr a sílu hlavních komponent.
Seřazení: Komponenty se seřadí podle velikosti vlastních čísel.
4. Praktické využití
Komprese obrazu: Snížení počtu pixelů při zachování rozpoznatelnosti objektů.
Genetika: Analýza tisíců genů a jejich seskupování do skupin podle podobnosti.
Finance: Identifikace hlavních faktorů ovlivňujících trh (např. úrokové sazby, inflace).
Preprocessing pro ML: Často se používá jako krok před nasazením
regrese nebo klasifikace.
5. Omezení PCA
Ukázka v Pythonu (Scikit-Learn)
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# 1. Standardizace dat
X_std = StandardScaler().fit_transform(X)
# 2. Inicializace PCA (chceme zachovat 2 nejdůležitější komponenty)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_std)
# 3. Zjištění, kolik informací jsme zachovali
print(f"Zachovaný rozptyl: {pca.explained_variance_ratio_.sum()}")
Související články:
Tagy: ai ml pca statistika dimensionality_reduction math