K-Means K-Means adalah salah satu algoritma clustering / pengelompokan data yang bersifat Unsupervised Learning, yang berarti masukan dari algoritma ini menerima data tanpa label kelas. Fungsi dari algoritma ini adalah mengelompokkan data kedalam beberapa cluster. Karakteristik dari algoritma ini adalah : • Memiliki n buah data • Input berupa jumlah data dan jumlah cluster (kelompok) • Pada setiap cluster / kelompok memiliki sebuah centroid yang mempresentasikan cluster tersebut. Secara sederhana algoritma K-Means dimulai dari tahap berikut : • Pilih K buah titik centroid. • Menghitung jarak data dengan centroid. • Update nilai titik centroid. • Ulangi langkah 2 dan 3 sampai nilai dari titik centroid tidak lagi berubah. Kita coba gambarkan dalam sebuah flowchart, agar kita lebih mudah memahami algoritma KMeans. Berikut adalah gambaran flowchartnya : Jadi dari flowchart diatas, kita memiliki input dan 3 buah proses. Yaitu pertama adalah proses menghitung centroid, kemudian proses kedua menghitung data yang akan dikelompokkan dengan centroid, kemudian proses ketiga adalah mengelompokkan data berdasarkan jarak terdekat (minimum distance). Dan kita membuat perulangan dengan kondisi "apakah posisi centroid tetap dan tidak ada perubahan terhadap datanya ?" apabila ya maka kita selesai melakukan pengelompokan. Tapi apabila masih ada perubahan centroid maka kita update kembali nilai centroid melalui proses pertama. Untuk meningkatkan pemahaman kita, mari kita bahas contoh soal berikut lengkap dengan perhitungannya. Dimisalkan kita memiliki sampel data dalam tabel berikut. Ada 6 buah data yang akan kita kelompokkan menjadi 2 cluster. Kita sebut saja K1 dan K2. Table Sample Data 1 2 3 4 5 6 X 100 40 30 90 65 25 Y 50 60 70 10 40 35 Kelompok / Cluster Kita akan mengaplikasikan K-Means Clustering untuk data diatas menjadi 2 cluster. Pertama kita akan hitung Centroid. Kita ambil data ke-1 dan ke-2 sebagai perhitungan pertama. Kita menggunakan rumus Euclidean Distance untuk mendapatkan jarak minimum data terhadap centroid. Cluster K1 K2 X 100 40 Y 50 60 Perhitungan menggunakan persamaan Euclidean Distance Perhitungan Pertama ; Kita mulai menghitung centroid pertama. Kita akan menentukan jarak dari data 1 ke data 1, data 1 ke data 2, data 2 ke data 1 dan data 2 ke data 2. Cluster 1 (100, 50) = ( jarak cluster 1 ke cluster 1) Jarak dari Cluster 2 ke cluster 1 (40 , 60) (100,50) = Jarak dari cluster 1 ke cluster 2 (100, 50) (40, 60) = Jarak cluster 2 ke cluster 2 (40, 60) = menghitung cluster 1 dan 2 untuk data ke-1 dan data ke-2 Sehingga ; Cluster K1 (100, 50) K2 (40, 60) Centroid X 0 60.83 Kelompok Cluster Y 60.83 0 1 2 hasl pengelompokan cluster data ke-1 masuk K1 dan data ke-2 masuk K2 Dari tabel diatas, kita lihat jarak minimum dari data 1 ke data 1 adalah 0 dan jarak minimum dari data 2 ke data 2 yaitu 0. Sehingga yang menjadi centroid K1 adalah data 1 dan data 2 menjadi centroid K2. Selanjutnya kita beralih ke perhitugan kedua untuk data ke-3. Perhitungan kedua. Setelah mendapatkan centroid, kita beralih ke data ke-3 yaitu (30, 70). Kita mulai hitung jarak data ke-3 terhadap centroid 1 dan centroid 2. Sehingga hasilnya nanti kita mengetahui data 3 akan masuk ke cluster K1 atau K2. Berikut adalah perhitungannya. Langkah selanjutnya kita beralih ke data 3 yaitu (30, 70). Kita mulai menghitung jarak dataset terhadap cluster 1. Garis hijau sebagai centroid, garis merah sebagai dataset dan garis biru sebagai hasil. Sebenarnya perhitungan (x-a)^2 dan (y-b)^2 dapat dibolak balik menjadi (a-x)^2 dan (b-y)^2 karena hasilnya pasti positif sebab dikuadratkan. Sehingga didapatkan : Dataset (30 , 70) Euclidean Distance Cluster 1 Cluster 2 72.80 14.14 Kelompok Cluster 2 hasil perhitungan data ke-2 Dilihat dari jarak minimum data teradap centroid, Dataset ke-3 masuk dalam kelompok cluster 2, karena jarak minimum / terdekat dataset adalah terhadap cluster 2 yaitu 14.14. Selanjutnya kita meng-UPDATE nilai Centroid. Karena data masuk ke K2, maka centroid K2 diupdate dengan cara : X_centroid_baru = (x_K2 + x_data3)/2 Y_centroid_baru = (y_K2 + y_data3)/2 Sehingga centroid yang baru kita dapatkan , pada garis merah adalah persamaan perhitungannya dan pada kotak merah adalah hasilnya. Kemudian kita update Centroid Cluster K1 K2 X 100 Y 50 Jadi Cluster Centroid yang baru adalah sebagai berikut : Cluster K1 K2 Perhitungan ketiga X 100 35 Y 50 65 Kita lanjutkan kembali menghitung dataset ke-4 yaitu (90, 10). Kita mulai menghitung jarak dataset terhadap cluster 1. sama seperti langkah di perhitungan kedua. dan berikut adalah perhitungannya. (100, 50) (90, 10) = Kemudian kita hitung jarak dataset terhadap cluster 2. Sangat perlu diingat, centroid 2 yang kita gunakan adalah yang sudah di update di perhitunga kedua diatas yaitu (35, 65). Hal ini juga berpengaruh apabila centroid cluster 1 di update Berikut adalah perhitungannya Dari kedua perhitungan jarak dataset cluster 1 dan cluster 2, Sehingga didapatkan : Dataset (90 , 10) Euclidean Distance Cluster 1 Cluster 2 41.23 77.78 Kelompok Cluster 1 Dataset ke-4 masuk dalam kelompok cluster 1 , karena jarak minimum / terdekat dataset adalah terhadap cluster 1 yaitu 41.23. Dari hasil diatas, kita mendapatkan jika dataset ke-4 masuk dalam cluster 1. Jadi seperti langkah sebelumnya, kita update kembali centroid K1 dengan dataset ke-3. Kemudian kita update Centroid Cluster K1 X Y K2 35 65 update Centroid K1 Jadi Cluster Centroid yang baru adalah sebagai berikut : Cluster K1 K2 X 95 35 Y 30 65 Perhitungan kelima Kita lanjutkan kembali menghitung dataset ke-5 yaitu (65, 40). Kita mulai menghitung jarak dataset terhadap cluster 1. Perhatikan kembali, centroid 1 yang digunakan adalah yan gtelah terupdate yaitu (95, 30). (95, 30) (65, 40) = Kemudian kita hitung jarak dataset terhadap cluster 2. (35, 65) (65, 40) = Sehingga didapatkan : Dataset (65, 40) Euclidean Distance Cluster 1 Cluster 2 31.62 33.54 Kelompok Cluster 1 Dataset ke-4 masuk dalam kelompok cluster 1 , karena jarak minimum / terdekat dataset adalah terhadap cluster 1 yaitu 31.62. Kemudian kita update Centroid Cluster K1 X Y K2 35 65 Jadi Cluster Centroid yang baru adalah sebagai berikut : Cluster K1 K2 X 80 35 Y 35 65 Perhitungan keenam Kita lanjutkan kembali menghitung dataset ke-6 yaitu (25, 35). Kita mulai menghitung jarak dataset terhadap cluster 1. Perhatikan kembali, centroid 1 yang digunakan adalah yang telah terupdate yaitu (80, 35). (80, 35) (25, 35) = Kemudian kita hitung jarak dataset terhadap cluster 2. (35, 65) (25, 35) = Sehingga didapatkan : Dataset (25, 35) Euclidean Distance Cluster 1 Cluster 2 55 31.62 Kelompok Cluster 2 Semua data telah kita dapatkan, dan masing-masing data sudah terkelompokkan berdasarkan cluster 1 dan cluster 2. Selanjutnya kita input hasil pengelompokkanya pada table pertama. JAdi hasilnya seperti berikut : Sample Data 1 2 3 4 5 6 X 100 40 30 90 65 25 Y 50 60 70 10 40 35 Kelompok / Cluster 1 2 2 1 1 2