Uploaded by Alambhana

K-Means

advertisement
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
Download