Apa itu k-means clustering?
K-means adalah algoritma unsupervised clustering yang membagi data menjadi k kelompok. Setiap titik masuk ke cluster dengan pusat terdekat, yang disebut centroid. Algoritma ini bergantian menjalankan dua langkah, yaitu menetapkan titik ke centroid terdekat dan memindahkan setiap centroid ke rata-rata titiknya, sampai penetapan berhenti berubah. Hasilnya meminimalkan, setidaknya secara lokal, total jarak kuadrat dari titik ke centroid-nya.
K-means dipakai untuk segmentasi pelanggan, color quantization gambar, pengelompokan dokumen, dan kompresi embedding vector, seperti vector quantization di dalam indeks approximate nearest-neighbor. Metode ini cepat dan sederhana, tetapi mengasumsikan cluster yang kurang lebih bulat dan berukuran mirip, dan nilai k harus dipilih di awal.
Ide utama
- K-means membagi data menjadi k cluster, dan setiap cluster diwakili rata-rata titiknya.
- Algoritma ini bergantian menjalankan langkah penetapan dan langkah pembaruan sampai penetapan berhenti berubah.
- Kedua langkah menurunkan inertia, yaitu total jarak kuadrat dari titik ke centroid-nya.
- Algoritma ini selalu konvergen, tetapi sering ke optimum lokal yang bergantung pada centroid awal.
- Inisialisasi k-means++ dan beberapa kali pengulangan acak membuat hasil yang baik jauh lebih mungkin.
- Elbow pada kurva inertia adalah heuristic yang umum untuk memilih k.
Ulasan singkat tentang topik ini
Pertanyaan umum
Apa bedanya k-means dan k-NN?
K-means adalah unsupervised clustering, dan k-nya adalah jumlah cluster yang dicari. K-nearest neighbors adalah klasifikasi atau regresi supervised, dan k-nya adalah jumlah tetangga berlabel yang memberi suara. Keduanya bergantung pada jarak, dan dari situlah kebingungannya sering muncul.
Kapan k-means gagal?
K-means kesulitan ketika cluster memanjang, melengkung, bersarang, atau sangat berbeda ukuran atau kepadatannya, karena batas yang digambarnya lurus di tengah antar-centroid. Outlier juga menarik centroid menjauh dari bagian utama cluster. DBSCAN menangani bentuk sembarang dan noise, sedangkan Gaussian mixture model menangani cluster elips dengan ukuran berbeda.
Apa hubungan k-means dengan Gaussian mixture model?
Gaussian mixture yang di-fit dengan expectation-maximization memberi setiap titik probabilitas soft untuk masuk ke setiap cluster. Kalau setiap komponen punya variance sferis yang sama dan kecil, penetapan soft itu berubah menjadi penetapan hard ke centroid terdekat, dan algoritmanya menjadi k-means.
Apakah k-means perlu feature scaling?
Biasanya perlu. Jarak Euclidean kuadrat menjumlahkan selisih di semua feature, jadi feature dengan satuan besar mendominasi clustering. Menstandardisasi setiap feature lebih dulu membuat pengaruhnya sebanding, kecuali satuan aslinya memang bermakna dan bisa dibandingkan.
Penjelasan terkait
- K-Nearest Neighbors · Klasifikasi berdasarkan kedekatan dan metrik jarak
- Dimensionality Reduction · PCA dan t-SNE untuk melihat data berdimensi tinggi
- Norm dan Metrik Jarak · L1, L2, cosine similarity: cara mengukur kedekatan di ruang vector
- Feature Scaling · Kenapa dan bagaimana menormalkan feature agar lebih cepat konvergen
- Curse of Dimensionality · Kenapa ruang berdimensi tinggi merusak intuisi dan algoritma
- Embedding · Mengubah kata dan kategori menjadi vector
Referensi
- Lloyd (1982), "Least Squares Quantization in PCM", IEEE Transactions on Information Theory
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", chapter 12: Unsupervised Learning
Terakhir diperbarui