K-means merupakan salah
satu algoritma clustering.
Tujuan algoritma ini yaitu untuk membagi data menjadi beberapa kelompok.
Algoritma ini menerima masukan berupa data tanpa label kelas. Hal ini berbeda
dengan supervised learning yang
menerima masukan berupa vektor (x1 , y1) , (x2 , y2) , …,
(xi , yi), di mana xi merupakan
data dari suatu data pelatihan dan yi merupakan
label kelas untuk xi.
Pada algoritma pembelajaran
ini, komputer mengelompokkan sendiri data-data yang menjadi masukannya tanpa
mengetahui terlebih dulu target kelasnya[1]. Pembelajaran ini termasuk dalam unsupervised learning. Masukan
yang diterima adalah data atau objek dan k buah
kelompok (cluster) yang diinginkan. Algoritma ini akan
mengelompokkan data atau objek ke dalam k buah
kelompok tersebut. Pada setiap cluster terdapat
titik pusat (centroid) yang merepresentasikan cluster tersebut.
K-means ditemukan oleh
beberapa orang yaitu Lloyd (1957, 1982), Forgey (1965) , Friedman and Rubin
(1967) , and McQueen (1967) [1]. Ide dari clustering pertama
kali ditemukan oleh Lloyd pada tahun 1957, namun hal tersebut baru dipublikasi
pada tahun 1982. Pada tahun 1965, Forgey juga mempublikasi teknik yang sama
sehingga terkadang dikenal sebagai Lloyd-Forgy pada beberapa sumber.
Kekurangan
dan kelebihan
Kelebihan :
1. Mudah untuk diimplementasikan dan dijalankan.
2. Waktu yang dibutuhkan untuk menjalankan pembelajaran ini
relatif cepat.
3. Mudah untuk diadaptasi.
4. Umum digunakan.
Kekurangan :
1. Sebelum algoritma dijalankan, k buah titik diinisialisasi
secara random sehingga pengelompokkan data yang dihasilkan
dapat berbeda-beda [1]. Jika nilai random untuk inisialisasi
kurang baik, maka pengelompokkan yang dihasilkan pun menjadi kurang optimal.
2. Dapat terjebak dalam masalah yang disebut curse
of dimensionality. Hal ini dapat terjadi jika data pelatihan memiliki
dimensi yang sangat tinggi (Contoh jika data pelatihan terdiri dari 2 atribut
maka dimensinya adalah 2 dimensi. Namun jika ada 20 atribut, maka akan ada 20
dimensi). Salah satu cara kerja algoritma ini adalah mencari jarak terdekat
antara k buah titik dengan titik lainnya. Jika mencari jarak
antar titik pada 2 dimensi, masih mudah dilakukan. Namun bagaimana mencari
jarak antar titik jika terdapat 20 dimensi. Hal ini akan menjadi sulit.
3. Jika hanya terdapat beberapa titik sampel data, maka
cukup mudah untuk menghitung dan mencari titik terdekat dengan k titik
yang diinisialisasi secara random. Namun jika terdapat banyak
sekali titik data (misalnya satu milyar buah data), maka perhitungan dan
pencarian titik terdekat akan membutuhkan waktu yang lama. Proses tersebut
dapat dipercepat, namun dibutuhkan struktur data yang lebih rumit seperti kD-Tree atau hashing.
Langkah
– Langkah Algorita K-Means
Algoritma untuk melakukan
K-Means clustering adalah sebagai berikut:
1. Pilih K buah titik centroid secara acak
2. Kelompokkan data sehingga terbentuk K buah cluster dengan
titik centroid dari setiap cluster merupakan
titik centroid yang telah dipilih sebelumnya
3. Perbaharui nilai titik centroid
4. Ulangi langkah 2 dan 3 sampai nilai dari titik centroid tidak
lagi berubah
Proses pengelompokkan data
ke dalam suatu cluster dapat dilakukan dengan cara menghitung
jarak terdekat dari suatu data ke sebuah titik centroid.
Perhitungan jarak Minkowski dapat digunakan untuk menghitung jarak antar 2 buah
data. Rumus untuk menghitung jarak tersebut adalah:

Di mana:
g = 1, untuk menghitung
jarak Manhattan
g = 2, untuk menghitung
jarak Euclidean
g = ∞, (invinity) untuk
menghitung jarak Chebychev
xi , xj adalah
dua buah data yang akan dihitung jaraknya
p = dimensi dari sebuah
data
Pembaharuan suatu titik centroid dapat dilakukan dengan rumus berikut:

Di mana:
µk = titik
centroid dari cluster ke-K
Nk =
banyaknya data pada cluster ke-K
xq = data
ke-q pada cluster ke-K
good, sangat bermanfaat :)
BalasHapus