Kernel PC A.id

Kernel PC A.id

Diperbarui 2026-02-16 Baca 2 menit
Ringkasan
  • Kernel PCA menjalankan PCA di ruang fitur nonlinier melalui fungsi kernel.
  • Pilihan kernel dan parameternya menentukan pola nonlinier yang bisa ditangkap.
  • Berguna saat PCA linear gagal merepresentasikan struktur melengkung.

Intuisi #

Kernel PCA mengubah cara mengukur kemiripan sebelum mengambil komponen utama. Pola yang nonlinier di ruang asli bisa menjadi lebih mudah dipisahkan.

Penjelasan Rinci #

1. Mengapa butuh kernel? #

  • PCA hanya menangkap variasi linear sehingga gagal bila data berada pada manifold melengkung.
  • Banyak dataset nyata (lingkaran konsentris, spiral) tidak bisa dipisahkan secara linear.
  • Kernel PCA memetakan data ke ruang fitur (\phi(x)) dan menggunakan produk dalam kernel untuk menemukan komponen utama di sana.

2. Rumusan #

Untuk sampel (x_i):

  1. Hitung matriks kernel $$K_{ij} = \langle \phi(x_i), \phi(x_j) \rangle = k(x_i, x_j)$$
  2. Cari autovektor $$K v = \lambda v$$ Autovektor yang telah dinormalisasi dipakai untuk memproyeksikan data seperti pada PCA.

Kernel populer: RBF (\exp(-\gamma |x - x’|^2)) dan polinomial ((\langle x, x’ \rangle + c)^d).


3. Dataset contoh #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
from sklearn.datasets import make_circles

X, y = make_circles(n_samples=400, factor=0.3, noise=0.15)

plt.figure(figsize=(8, 8))
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title("Lingkaran konsentris")
plt.show()

Dataset lingkaran


4. Kernel PCA dengan scikit-learn #

1
2
3
4
5
6
7
8
9
from sklearn.decomposition import KernelPCA

kpca = KernelPCA(kernel="rbf", gamma=3)
X_kpca = kpca.fit_transform(X)

plt.figure(figsize=(8, 8))
plt.scatter(X_kpca[:, 0], X_kpca[:, 1], c=y)
plt.title("Embedding 2D dari Kernel PCA")
plt.show()

Hasil Kernel PCA


5. Catatan praktis #

  • Pilih kernel yang sesuai bentuk data; RBF aman untuk kebanyakan kasus.
  • Skala fitur sebelum membentuk matriks kernel agar parameter (\gamma) bermakna.
  • Matriks Gram berukuran (n \times n); perhatikan memori.
  • Pemahaman kernel PCA juga berguna saat memakai SVM atau metode kernel lainnya.