2.5.8
Clustering spektral
Ringkasan
- Clustering spektral membangun graf kesamaan dan menggunakan eigenvektor laplasian untuk memetakan data sebelum menjalankan k-means.
- Cocok untuk pola non-linear seperti cincin konsentris atau bentuk bulan sabit karena mempertimbangkan konektivitas.
- Parameter penting:
affinity(rbf,nearest_neighbors, dll.),gamma/n_neighbors, sertaassign_labels. - Setelah mengambil (k) eigenvektor teratas dari laplasian ternormalisasi, normalisasikan barisnya dan jalankan k-means untuk mendapatkan label.
Intuisi #
Metode ini dipahami lewat asumsi dasarnya, karakteristik data, dan dampak pengaturan parameter terhadap generalisasi.
Penjelasan Rinci #
1. Gambaran umum #
Dengan matriks afinitas (W) dan derajat (D), laplasian graf adalah
$$ L = D - W, \qquad D = \mathrm{diag}(d_i),\; d_i = \sum_j W_{ij}. $$Versi normalisasi simetri:
$$ L_{\mathrm{sym}} = D^{-1/2} L D^{-1/2} = I - D^{-1/2} W D^{-1/2}. $$Ambil (k) eigenvektor bernilai eigen terkecil, bentuk matriks (U), normalisasikan setiap baris, lalu jalankan k-means untuk memperoleh klaster.
2. Contoh Python #
| |
3. Catatan praktis #
- Untuk graf jarang gunakan
affinity="nearest_neighbors"dan sesuaikann_neighbors. assign_labels="cluster_qr"bisa lebih stabil ketimbang k-means pada embedding berdimensi tinggi.- Lakukan standardisasi fitur sebelum menghitung kemiripan supaya skala
gammabermakna.
4. Referensi #
- Shi, J., & Malik, J. (2000). Normalized Cuts and Image Segmentation. IEEE TPAMI.
- Ng, A. Y., Jordan, M. I., & Weiss, Y. (2002). On Spectral Clustering: Analysis and an Algorithm. NeurIPS.
- scikit-learn developers. (2024). Spectral clustering. https://scikit-learn.org/stable/modules/clustering.html#spectral-clustering