Ini adalah implementasi Python dari algoritma k-means termasuk metode siku dan metode siluet untuk memilih K optimal
K-means adalah algoritma pengelompokan populer yang digunakan untuk mempartisi data menjadi K cluster. Ia bekerja dengan menugaskan setiap titik data secara berulang ke pusat massa cluster terdekat dan kemudian menghitung ulang pusat massa setiap cluster berdasarkan titik data yang ditugaskan padanya. Proses ini diulang sampai konvergensi.
Tujuan dari k-means adalah untuk meminimalkan jumlah jarak kuadrat antara setiap titik data dan pusat cluster yang ditugaskan. Fungsi tujuan dapat ditulis sebagai: i-th
dalam cluster j
, μj
adalah pusat massa cluster j
, dan N
adalah jumlah total titik data.
Metode Elbow merupakan heuristik yang digunakan untuk menentukan jumlah cluster optimal pada clustering K-Means. Metode ini memplot jumlah jarak kuadrat antara setiap observasi dan pusat massa yang ditetapkan sebagai fungsi dari jumlah cluster. Titik "siku" pada plot menunjukkan jumlah cluster dimana penambahan cluster tambahan tidak menghasilkan pengurangan jumlah kuadrat jarak yang signifikan.
Metode Elbow dapat diringkas dengan langkah-langkah berikut:
Metode Silhouette adalah heuristik lain yang digunakan untuk menentukan jumlah cluster optimal dalam clustering K-Means. Metode ini mengukur kualitas penugasan cluster setiap observasi dengan menghitung koefisien siluetnya. Koefisien siluet berkisar antara -1 hingga 1, dimana nilai 1 menunjukkan bahwa observasi tersebut berkerumun dengan baik dan nilai -1 menunjukkan bahwa observasi tersebut salah klasifikasi. Rumus untuk menghitung koefisien siluet suatu titik data i
adalah: a(i)
adalah jarak rata-rata antara i
dan semua titik data lain dalam clusternya, dan b(i)
adalah jarak rata-rata minimum antara i
dan semua cluster lainnya (yaitu cluster dengan pusat massa terdekat berikutnya). Koefisien siluet untuk keseluruhan pengelompokan adalah rata-rata koefisien siluet untuk semua titik data.
Metode Silhouette dapat diringkas dengan langkah-langkah berikut: