Intrinsieke dimensie

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Intrinsieke dimensie van een vliegbaan

  • 2 features: lengte- en breedtegraad langs een vliegbaan
  • Dataset lijkt 2D
  • Maar is te benaderen met 1 feature: verplaatsing langs de baan
  • Is intrinsiek 1D
latitude  longitude
  50.529     41.513
  50.360     41.672
  50.196     41.835
...

Spreidingsdiagram: lengtegraad vs breedtegraad

Unsupervised Learning in Python

Intrinsieke dimensie

  • Intrinsieke dimensie = aantal features om de dataset te benaderen
  • Essentieel idee achter dimensiereductie
  • Wat is de meest compacte representatie?
  • Te detecteren met PCA
Unsupervised Learning in Python

Versicolor-dataset

  • "versicolor", een van de iris-soorten
  • Slechts 3 features: kelklengte, kelkbreedte, en kroonbladbreedte
  • Samples zijn punten in 3D-ruimte
Unsupervised Learning in Python

Versicolor heeft intrinsieke dimensie 2

  • Samples liggen dicht bij een vlak 2D-oppervlak
  • Dus te benaderen met 2 features

Versicolor-punten in 3D: kelklengte vs kelkbreedte vs kroonbladbreedte

Unsupervised Learning in Python

PCA bepaalt de intrinsieke dimensie

  • Spreidingsdiagrammen werken alleen bij 2 of 3 features
  • PCA bepaalt de intrinsieke dimensie bij elk aantal features
  • Intrinsieke dimensie = aantal PCA-features met significante variantie
Unsupervised Learning in Python

PCA van de versicolor-samples

Geroteerde versicolor-punten in 3D: PC1 vs PC2 vs PC3

Unsupervised Learning in Python

PCA-features gesorteerd op aflopende variantie

Staafdiagram: pca-featurenummer vs variantie

Unsupervised Learning in Python

Varianties en intrinsieke dimensie

  • Intrinsieke dimensie = aantal PCA-features met significante variantie
  • In ons voorbeeld: de eerste twee PCA-features
  • Dus intrinsieke dimensie is 2

Staafdiagram: pca-featurenummer vs variantie met rode lijn tussen 1 en 2

Unsupervised Learning in Python

Varianties van PCA-features plotten

  • samples = array met versicolor-samples
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

pca = PCA()
pca.fit(samples)
PCA()
features = range(pca.n_components_)
Unsupervised Learning in Python

Varianties van PCA-features plotten

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

Staafdiagram: pca-featurenummer vs variantie

Unsupervised Learning in Python

Intrinsieke dimensie kan ambigu zijn

  • Intrinsieke dimensie is een ideaalbeeld
  • ... er is niet altijd één juist antwoord!
  • Piemonte-wijnen: je kunt 2, 3 of meer bepleiten

Staafdiagram: pca-featurenummer vs variantie van wijnen-dataset

Unsupervised Learning in Python

Laten we oefenen!

Unsupervised Learning in Python

Preparing Video For Download...