Wizualizacja transformacji PCA

Uczenie nienadzorowane w Pythonie

Benjamin Wilson

Director of Research at lateral.io

Redukcja wymiarów

  • Bardziej wydajne przechowywanie i obliczenia
  • Usunięcie mniej informacyjnych cech „szumu"
  • ... które powodują problemy w zadaniach predykcyjnych, np. klasyfikacji, regresji
Uczenie nienadzorowane w Pythonie

Analiza głównych składowych

  • PCA = „Analiza głównych składowych"
  • Podstawowa technika redukcji wymiarów
  • Pierwszy krok: „dekorelacja" (omawiana tutaj)
  • Drugi krok: redukcja wymiarów (omawiana później)
Uczenie nienadzorowane w Pythonie

PCA wyrównuje dane do osi

  • Obraca próbki danych tak, by były wyrównane do osi
  • Przesuwa próbki danych, by ich średnia wynosiła 0
  • Żadna informacja nie jest tracona

wykres punktowy danych o winach z obróconymi osiami

Uczenie nienadzorowane w Pythonie

PCA stosuje wzorzec fit/transform

  • PCA to komponent scikit-learn podobny do KMeans czy StandardScaler
  • fit() uczy transformacji na podstawie danych
  • transform() stosuje nauczoną transformację
  • transform() można też stosować do nowych danych
Uczenie nienadzorowane w Pythonie

PCA w scikit-learn

  • samples = tablica dwóch cech (total_phenols i od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Uczenie nienadzorowane w Pythonie

Cechy PCA

  • Wiersze transformed odpowiadają próbkom
  • Kolumny transformed to "cechy PCA"
  • Wiersz zawiera wartości cech PCA danej próbki
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Uczenie nienadzorowane w Pythonie

Cechy PCA nie są skorelowane

  • Cechy zbioru danych są często skorelowane, np. total_phenols i od280
  • PCA wyrównuje dane do osi
  • Wynikowe cechy PCA nie są liniowo skorelowane ("dekorelacja")

wykres punktowy danych o winach z obróconymi osiami

Uczenie nienadzorowane w Pythonie

Korelacja Pearsona

  • Mierzy liniową korelację cech
  • Wartość od -1 do 1
  • Wartość 0 oznacza brak korelacji liniowej

3 wykresy punktowe z korelacją 0.7, 0 i -0.7

Uczenie nienadzorowane w Pythonie

Składowe główne

  • "Składowe główne" = kierunki wariancji
  • PCA wyrównuje składowe główne do osi

wykres punktowy danych o winach z 2 czerwonymi strzałkami wskazującymi kierunki składowych głównych (obrócone osie)

Uczenie nienadzorowane w Pythonie

Składowe główne

  • Dostępne jako atrybut components_ obiektu PCA
  • Każdy wiersz określa przesunięcie od średniej
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Uczenie nienadzorowane w Pythonie

Czas na ćwiczenia!

Uczenie nienadzorowane w Pythonie

Preparing Video For Download...