Lensa ML

Cara Kerja Dimensionality Reduction

Langkah 1 dari 6: Curse of Dimensionality

Makin banyak feature, ruangnya bertambah secara eksponensial

1D: Garis12 titik pada garis: rapat

Saat dimensi bertambah, 12 titik yang sama menjadi renggang secara eksponensial. Pada dimensi tinggi, sebagian besar ruangnya kosong. Inilah curse of dimensionality.

Klik 1D, 2D, dan 3D, atau biarkan tampilannya berganti sendiri, lalu lihat 12 titik yang sama makin menyebar. Untuk mempertahankan jarak antartitik seperti 12 titik pada garis, persegi butuh 144 titik dan kubus 1.728 titik, karena jumlahnya tumbuh mengikuti 12^d. Jarak juga kehilangan kontras. Dalam 100 dimensi, tetangga terdekat dan terjauh dari sebuah titik acak hampir sama jauhnya, dan ini merugikan KNN dan clustering. Data sungguhan biasanya lolos dari dampak terburuknya karena terletak di dekat permukaan berdimensi lebih rendah, dan dimensionality reduction berusaha menemukan permukaan itu.

Langkah 2 dari 6: PCA: Mencari Sudut Terbaik

Putar data untuk memaksimalkan variance

Sumbu PC1 (putar sumbunya)
56°
Explained variance
83.2%
Variance pada PC1
2.96

PCA memilih sumbu yang menangkap sebaran (variance) terbesar dalam data. Putar garisnya untuk memaksimalkan explained variance. Sudut itulah principal component pertama.

Geser Sudut rotasi dari 0° sampai 180° dan lihat explained variance naik turun. Saat diproyeksikan ke arah satuan w, titik-titik itu punya variance wᵀCw, dengan C sebagai matriks covariance, dan PC1 adalah w yang membuat nilai ini paling besar. Arah itu adalah eigenvector teratas dari C, dan eigenvalue-nya sama dengan variance di sepanjang arah tersebut. PC2 adalah arah terbaik yang tegak lurus terhadap PC1, begitu seterusnya. Pada sebaran titik ini, nilainya memuncak di dekat 34°, dengan PC1 memuat sekitar 96% variance. Feature dengan satuan besar akan mendominasi kecuali data distandardisasi lebih dulu.

Langkah 3 dari 6: Memilih Jumlah Dimensi

Berapa komponen yang perlu disimpan?

Scree plotKumulatif42%PC125%PC215%PC310%PC45%PC53%PC682% tersimpanKomponenVariance %
3 dari 6
Variance tersimpan
82%
Error rekonstruksi
18%

Scree plot menunjukkan variance yang ditangkap setiap komponen. Cari titik elbow, tempat komponen tambahan nyaris tidak menambah apa-apa. Makin sedikit komponen, makin besar kompresinya dan makin tinggi error rekonstruksinya.

Geser Komponen yang disimpan dari 1 sampai 6 dan perhatikan kurva kumulatif serta angka Variance tersimpan. Selain elbow, ada dua aturan yang umum. Yang pertama menyimpan cukup komponen untuk porsi variance tertentu, sering kali 90% atau 95%. Yang kedua, aturan Kaiser untuk data terstandardisasi, menyimpan komponen dengan eigenvalue di atas 1. Dengan nilai scree yang ditampilkan, 90% butuh 4 komponen dan 95% butuh 5. Saat hasil PCA menjadi input model, pilihan yang paling andal adalah memperlakukan jumlah komponen sebagai hyperparameter dan memilihnya lewat cross-validation.

Langkah 4 dari 6: PCA dalam Praktik

Kompresi lalu rekonstruksi

Asli (5 feature)PCA (2 komp.)Hasil rekonstruksif10.8f20.3f30.9f40.2f50.71.420.190.80.30.90.20.6Error rekonstruksi0.005

PCA memampatkan 5 feature menjadi 2 komponen, lalu merekonstruksi data asli dari komponen itu. Error berwarna merah menunjukkan seberapa banyak informasi yang hilang.

Klik 1 komp., 2 komp., dan 3 komp., lalu bandingkan batang asli dan hasil rekonstruksi. Kompresi menghitung skor z = Wᵀ(x − x̄), dan rekonstruksi memetakannya kembali dengan x̂ = Wz + x̄. Kolom W adalah komponen yang disimpan. Karena komponennya orthonormal, kuadrat error rekonstruksi sama dengan bagian data yang berada di sepanjang arah yang dibuang, sehingga nilainya hanya bisa turun saat komponen ditambah: di sini dari 0,041 dengan satu komponen menjadi 0,004 dengan tiga komponen. Denoising memakai perjalanan bolak-balik yang sama: noise yang tersebar tipis di banyak arah sebagian besar jatuh ke arah yang dibuang. Autoencoder adalah versi non-linear dari ide ini.

Langkah 5 dari 6: t-SNE: Menjaga Tetangga Lokal

Titik yang mirip tetap berdekatan dalam 2D

Dimensi TinggiABCCluster tumpang tindih di tampilan mentaht-SNEt-SNE 2D
10

t-SNE memetakan data berdimensi tinggi ke 2D sambil menjaga tetangga lokal. Titik yang mirip tetap berdekatan. Perplexity kira-kira menentukan berapa banyak tetangga yang diperhitungkan setiap titik. Nilai yang lebih tinggi memunculkan struktur yang lebih luas.

Geser Perplexity dari 5 sampai 30 dan lihat cluster-nya melonggar. t-SNE mengubah jarak menjadi probabilitas. Di ruang asal, tetangga setiap titik mendapat weight dari distribusi Gaussian yang lebarnya disetel agar jumlah tetangga efektif sama dengan perplexity. Di 2D, t-SNE memakai distribusi Student-t berekor tebal, yang membiarkan titik berjarak sedang terletak berjauhan dan mencegah cluster saling menumpuk. Lalu titik 2D digeser untuk meminimalkan KL divergence antara kedua distribusi. Paper aslinya menyarankan perplexity dari 5 sampai 50.

Langkah 6 dari 6: PCA vs t-SNE

Kesederhanaan linear vs keindahan non-linear

PCACluster tumpang tindiht-SNECluster terpisah jelas
PCAt-SNE
JenisLinearNon-linear
KecepatanCepatLambat
JarakSebagian besar terjagaTerdistorsi
Cocok untukPreprocessingVisualisasi

Pakai PCA untuk reduksi yang cepat dan bisa dibalik (preprocessing, denoising). Pakai t-SNE untuk memvisualisasikan cluster, tetapi jarak antar-cluster nyaris tidak bermakna.

Bandingkan cluster PCA yang tumpang tindih di kiri dengan cluster t-SNE yang terpisah di kanan, lalu baca tabelnya. Plot t-SNE perlu dibaca dengan hati-hati: ukuran cluster dan jarak antar-cluster hampir tidak bermakna, dan random seed yang berbeda menghasilkan tata letak yang berbeda. t-SNE juga tidak punya transformasi untuk titik baru, jadi tidak seperti PCA, ia tidak bisa di-fit pada data training lalu diterapkan ke data uji. UMAP (McInnes et al., 2018) adalah alternatif yang lebih cepat dan mempertahankan lebih banyak struktur global. Resep yang umum: jalankan PCA sampai sekitar 50 dimensi dulu, baru t-SNE.

Apa itu dimensionality reduction?

Dimensionality reduction adalah proses menyatakan data yang punya banyak feature dengan jauh lebih sedikit feature, sambil mempertahankan strukturnya sebanyak mungkin. Metode linear seperti principal component analysis (PCA) memproyeksikan data ke beberapa sumbu baru. Metode non-linear seperti t-SNE dan UMAP menempatkan titik dalam dua atau tiga dimensi sehingga titik yang bertetangga tetap bertetangga.

Teknik ini dipakai untuk mempercepat dan meregularisasi model, memampatkan data, membuang noise, dan terutama memvisualisasikan data berdimensi tinggi. Ahli biologi memetakan ekspresi gen single-cell dengan t-SNE atau UMAP, ML engineer memeriksa embedding kata dan gambar dengan cara yang sama, dan PCA adalah langkah preprocessing standar sebelum clustering atau regresi pada tabel yang lebar. Mengurangi dimensi juga meredakan curse of dimensionality: jarak dan estimasi kepadatan makin tidak bisa diandalkan saat feature bertambah.

Ide utama

  • Dimensionality reduction memetakan data dengan banyak feature ke lebih sedikit feature sambil mempertahankan strukturnya sebanyak mungkin.
  • Pada dimensi tinggi, data menjadi renggang dan jarak kehilangan kontras, dan ini merugikan banyak model.
  • PCA memproyeksikan data ke arah-arah tegak lurus dengan variance maksimum, yaitu eigenvector dari matriks covariance.
  • Jumlah komponen bisa dipilih dari scree plot, target variance, atau cross-validation.
  • t-SNE menjaga tetangga lokal untuk visualisasi 2D, tetapi mendistorsi jarak global.
  • PCA bersifat linear, cepat, dan bisa dipakai ulang pada data baru, sedangkan t-SNE terutama alat visualisasi.

Pertanyaan umum

Apa bedanya dimensionality reduction dan feature selection?

Feature selection menyimpan sebagian kolom asli tanpa mengubahnya. Metode dimensionality reduction seperti PCA membangun feature baru yang mencampur semua feature asli. Feature selection membuat feature tetap mudah ditafsirkan, sedangkan dimensionality reduction bisa memuat lebih banyak informasi dalam lebih sedikit angka.

PCA termasuk supervised atau unsupervised?

PCA bersifat unsupervised: ia mengabaikan label dan hanya melihat sebaran input. Arah dengan variance terbesar belum tentu arah yang memisahkan kelas. Linear discriminant analysis (LDA) adalah padanan supervised-nya, yang memilih arah yang paling baik memisahkan kelas yang sudah diketahui.

Kapan PCA gagal?

PCA hanya bisa menemukan subspace datar, jadi kesulitan saat data terletak pada permukaan melengkung, seperti contoh klasik swiss roll. PCA juga bisa membuang arah ber-variance rendah yang ternyata memprediksi target. Kernel PCA, autoencoder, dan metode manifold seperti UMAP lebih baik menangani struktur melengkung.

Bisakah t-SNE atau UMAP dipakai sebagai feature input model?

UMAP bisa mentransformasi titik baru dan kadang dipakai seperti itu, walaupun hasilnya berbeda antar-run. t-SNE standar tidak bisa meng-embed titik baru tanpa menjalankan ulang seluruh dataset, jadi hampir hanya dipakai untuk visualisasi. Untuk input model, PCA atau embedding hasil pembelajaran adalah pilihan yang lebih aman.

Penjelasan terkait

Referensi

  1. van der Maaten & Hinton (2008), "Visualizing Data using t-SNE", JMLR
  2. McInnes, Healy & Melville (2018), "UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction"
  3. James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning" (ISLR), chapter 12

Terakhir diperbarui