Wymiar wewnętrzny

Uczenie nienadzorowane w Pythonie

Benjamin Wilson

Director of Research at lateral.io

Wymiar wewnętrzny trasy lotu

  • 2 cechy: długość i szerokość geograficzna punktów trasy lotu
  • Zbiór danych wydaje się 2-wymiarowy
  • Można go przybliżyć jedną cechą: przesunięciem wzdłuż trasy
  • Jest wewnętrznie 1-wymiarowy
latitude  longitude
  50.529     41.513
  50.360     41.672
  50.196     41.835
...

Wykres punktowy: długość vs szerokość geograficzna

Uczenie nienadzorowane w Pythonie

Wymiar wewnętrzny

  • Wymiar wewnętrzny = liczba cech potrzebnych do przybliżenia zbioru danych
  • Podstawowa idea redukcji wymiarowości
  • Jaka jest najbardziej zwarta reprezentacja próbek?
  • Można go wykryć za pomocą PCA
Uczenie nienadzorowane w Pythonie

Zbiór danych versicolor

  • „versicolor" – jeden z gatunków irysów
  • Tylko 3 cechy: długość działki, szerokość działki i szerokość płatka
  • Próbki to punkty w przestrzeni 3D
Uczenie nienadzorowane w Pythonie

Zbiór versicolor ma wymiar wewnętrzny 2

  • Próbki leżą blisko płaskiej powierzchni 2D
  • Można je przybliżyć za pomocą 2 cech

Punkty versicolor na wykresie 3D: długość działki vs szerokość działki vs szerokość płatka

Uczenie nienadzorowane w Pythonie

PCA identyfikuje wymiar wewnętrzny

  • Wykresy punktowe działają tylko dla 2 lub 3 cech
  • PCA identyfikuje wymiar wewnętrzny dla dowolnej liczby cech
  • Wymiar wewnętrzny = liczba cech PCA o istotnej wariancji
Uczenie nienadzorowane w Pythonie

PCA próbek versicolor

Obrócone punkty versicolor na wykresie 3D: PC1 vs PC2 vs PC3

Uczenie nienadzorowane w Pythonie

Cechy PCA są uporządkowane malejąco według wariancji

Wykres słupkowy: numer cechy PCA vs wariancja

Uczenie nienadzorowane w Pythonie

Wariancja i wymiar wewnętrzny

  • Wymiar wewnętrzny = liczba cech PCA o istotnej wariancji
  • W naszym przykładzie: dwie pierwsze cechy PCA
  • Wymiar wewnętrzny wynosi 2

Wykres słupkowy z czerwoną linią pionową między 1 a 2

Uczenie nienadzorowane w Pythonie

Wizualizacja wariancji cech PCA

  • samples = tablica próbek versicolor
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

pca = PCA()
pca.fit(samples)
PCA()
features = range(pca.n_components_)
Uczenie nienadzorowane w Pythonie

Wizualizacja wariancji cech PCA

plt.bar(features, pca.explained_variance_)
plt.xticks(features)
plt.ylabel('variance')
plt.xlabel('PCA feature')
plt.show()

Wykres słupkowy: numer cechy PCA vs wariancja

Uczenie nienadzorowane w Pythonie

Wymiar wewnętrzny może być niejednoznaczny

  • Wymiar wewnętrzny jest idealizacją
  • ... nie zawsze istnieje jedna poprawna odpowiedź!
  • Wina z Piemontu: można argumentować za 2, 3 lub więcej

Wykres słupkowy: numer cechy PCA vs wariancja dla zbioru win

Uczenie nienadzorowane w Pythonie

Czas na ćwiczenia!

Uczenie nienadzorowane w Pythonie

Preparing Video For Download...