Dimensi intrinsik

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Dimensi intrinsik jalur penerbangan

  • 2 fitur: garis bujur dan lintang di titik sepanjang jalur penerbangan
  • Dataset tampak 2-dimensi
  • Namun dapat didekati dengan satu fitur: perpindahan sepanjang jalur
  • Secara intrinsik 1-dimensi
latitude  longitude
  50.529     41.513
  50.360     41.672
  50.196     41.835
...

Scatter plot garis bujur vs garis lintang

Unsupervised Learning in Python

Dimensi intrinsik

  • Dimensi intrinsik = jumlah fitur yang dibutuhkan untuk mendekati dataset
  • Gagasan inti di balik reduksi dimensi
  • Representasi paling ringkas dari sampel?
  • Dapat dideteksi dengan PCA
Unsupervised Learning in Python

Dataset versicolor

  • "versicolor", salah satu spesies iris
  • Hanya 3 fitur: panjang sepal, lebar sepal, dan lebar petal
  • Sampel adalah titik di ruang 3D
Unsupervised Learning in Python

Dataset versicolor berdimensi intrinsik 2

  • Sampel berada dekat bidang datar 2D
  • Jadi dapat didekati dengan 2 fitur

Titik versicolor diplot dalam ruang 3D: panjang sepal vs lebar sepal vs lebar petal

Unsupervised Learning in Python

PCA mengidentifikasi dimensi intrinsik

  • Scatter plot hanya berfungsi jika sampel punya 2 atau 3 fitur
  • PCA mengidentifikasi dimensi intrinsik saat sampel punya jumlah fitur berapa pun
  • Dimensi intrinsik = jumlah fitur PCA dengan varians signifikan
Unsupervised Learning in Python

PCA pada sampel versicolor

Titik versicolor terotasi diplot dalam ruang 3D: PC1 vs PC2 vs PC3

Unsupervised Learning in Python

Fitur PCA diurutkan menurun menurut varians

Plot batang: nomor fitur PCA vs varians

Unsupervised Learning in Python

Varians dan dimensi intrinsik

  • Dimensi intrinsik adalah jumlah fitur PCA dengan varians signifikan
  • Pada contoh ini: dua fitur PCA pertama
  • Jadi dimensinya 2

Plot batang: nomor fitur PCA vs varians dengan garis merah vertikal antara 1 dan 2

Unsupervised Learning in Python

Memplot varians fitur PCA

  • samples = array sampel versicolor
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

Memplot varians fitur PCA

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

Plot batang: nomor fitur PCA vs varians

Unsupervised Learning in Python

Dimensi intrinsik bisa ambigu

  • Dimensi intrinsik adalah idealisasi
  • ... tidak selalu ada satu jawaban benar
  • Wine Piedmont: bisa berargumen 2, 3, atau lebih

Plot batang: nomor fitur PCA vs varians pada dataset wine

Unsupervised Learning in Python

Ayo berlatih!

Unsupervised Learning in Python

Preparing Video For Download...