Vizualizace transformace PCA

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Redukce dimenzionality

  • Efektivnější ukládání a výpočet
  • Odstraní méně informativní „šumové" příznaky
  • ... které způsobují problémy při predikci, např. klasifikaci či regresi
Unsupervised Learning in Python

Analýza hlavních komponent

  • PCA = „Principal Component Analysis"
  • Základní technika redukce dimenzionality
  • První krok: „dekorelace" (popsána zde)
  • Druhý krok: snížení dimenze (popsáno později)
Unsupervised Learning in Python

PCA zarovná data s osami

  • Otočí vzorky dat tak, aby byly zarovnány s osami
  • Posune vzorky dat tak, aby měly střed 0
  • Žádná informace není ztracena

bodový graf dat o vínech s otočenými osami

Unsupervised Learning in Python

PCA sleduje vzor fit/transform

  • PCA je komponenta scikit-learn podobně jako KMeans nebo StandardScaler
  • fit() se naučí transformaci z daných dat
  • transform() aplikuje naučenou transformaci
  • transform() lze použít i na nová data
Unsupervised Learning in Python

Použití PCA v scikit-learn

  • samples = pole dvou příznaků (total_phenols a od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Unsupervised Learning in Python

Příznaky PCA

  • Řádky transformed odpovídají vzorkům
  • Sloupce transformed jsou „příznaky PCA"
  • Řádek udává hodnoty příznaků PCA pro daný vzorek
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Unsupervised Learning in Python

Příznaky PCA nejsou korelované

  • Příznaky datasetu bývají korelované, např. total_phenols a od280
  • PCA zarovná data s osami
  • Výsledné příznaky PCA nejsou lineárně korelované („dekorelace")

bodový graf dat o vínech s otočenými osami

Unsupervised Learning in Python

Pearsonova korelace

  • Měří lineární korelaci příznaků
  • Hodnota mezi -1 a 1
  • Hodnota 0 znamená žádnou lineární korelaci

3 bodové grafy s korelací 0,7, 0 a -0,7

Unsupervised Learning in Python

Hlavní komponenty

  • „Hlavní komponenty" = směry rozptylu
  • PCA zarovná hlavní komponenty s osami

bodový graf dat o vínech se 2 červenými šipkami znázorňujícími směry hlavních komponent (otočené osy)

Unsupervised Learning in Python

Hlavní komponenty

  • Dostupné jako atribut components_ objektu PCA
  • Každý řádek definuje posunutí od středu
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Unsupervised Learning in Python

Pojďme procvičovat!

Unsupervised Learning in Python

Preparing Video For Download...