Uživatelské nástroje

Nástroje pro tento web


it:ml:pca

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

  • Ztráta interpretovatelnosti: Hlavní komponenty jsou lineární kombinací původních rysů. Např. PC1 už není „věk“, ale složitý vzorec složený z věku, příjmu a vzdělání.
  • Lineární omezení: PCA předpokládá lineární vztahy. Pro nelineární data jsou vhodnější metody jako t-SNE nebo Autoenkodéry.

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

it/ml/pca.txt · Poslední úprava: autor: admin