K-Means
Konsep Clustering
Klasifikasi melakukan pengelompokan data dimana setiap
data sudah ada label kelasnya
◦ Sehingga pekerjaan berikutnya adalah membuat model untuk dapat
melakukan prediksi pada data baru yang kemudian muncul untuk
diketahui kelasnya.
2
8
Konsep Clustering 4
0
0 2 4 6 8
Data asli
8
0
0 2 4 6 8
Empat cluster 3
Konsep Clustering
Bidang penerapan teknik clustering: kedokteran, kesehatan, psikologi,
hukum, statistik, astronomi, klimatologi dan sebagainya.
◦ Kedokteran, teknik clustering dapat digunakan untuk mengelompokkan
jenis-jenis penyakit berbahaya berdasarkan karakteristik / sifat-sifat penyakit
pasien.
◦ Kesehatan, dapat digunakan untuk mengelompokkan jenis-jenis makanan
berdasarkan kandungan kalori, vitamin, protein.
4
K-Means
Metode analisis cluster yang mengarah pada pemartisian N obyek
pengamatan kedalam K kelompok (cluster) dimana setiap obyek
pengamatan dimiliki oleh sebuah kelompok/cluster dengan mean (rata-
rata) terdekat.
Salah satu metode pengelompokan data non hierarki (partitioning) yang
berusaha mempartisi data ke dalam bentuk dua atau lebih cluster.
◦ Mempartisi data ke dalam cluster sehingga data yang memiliki karakteristik
yang sama dikelompokkan ke dalam satu cluster yang sama dan data yang
mempunyai karakteristik yang berbeda dikelompokkan ke dalam cluster yang
lain.
◦ Tujuannya adalah meminimalisasikan fungsi obyektif yang diset dalam proses
pengelompokan, yang pada umumnya berusaha meminimalisasikan variasi
di dalam suatu cluster dan memaksimalkan variasi antar cluster.
5
Algoritma K-Means
1. Tentukan jumlah kelompok
2. Alokasikan data ke dalam kelompok secara acak
3. Hitung pusat cluster (centroid/rata-rata) dari data yang ada di
masing-masing cluster
4. Alokasikan masing-masing data ke centroid/rata-rata terdekat
5. Kembali ke Langkah 3,
◦ apabila masih ada data yang berpindah cluster,
◦ atau apabila perubahan nilai centroid ada yang di atas nilai threshold
yang ditentukan,
◦ atau apabila perubahan nilai pada fungsi obyektif yang digunakan
masih di atas nilai threshold yang ditentukan
6
Algoritma K-Means
Jika M menyatakan jumlah data dalam sebuah cluster, i menyatakan
fitur ke-i dalam sebuah cluster dan p menyatakan dimensi data, maka
untuk menghitung centroid fitur ke-i digunakan formula:
1 M
Ci xj
M j 1
◦ dilakukan sebanyak p dimensi, sehingga i mulai 1 sampai p.
x x
2
D( x 2 , x1 ) x 2 x1 2
2j x1 j D( x 2 , x1 ) x 2 x1 1
2j x1 j
j 1 j 1
7
Algoritma K-Means
Pengalokasian data ke cluster dapat dirumuskan sebagai berikut (MacQueen, 1967):
1 d min{ D( xi , Cl )}
ail
0 lainnya
◦ Dimana ail adalah nilai keanggotaan titik xi ke pusat cluster Cl, d adalah jarak terpendek dari
data xi ke K cluster setelah dibandingkan, dan Cl centroid (pusat cluster) ke-l.
Fungsi objektif berdasarkan jarak dan nilai keanggotaan data dalam cluster
J aic Dxi , Cl 2
N K
i 1l 1
◦ Dimana N adalah jumlah data, K adalah jumlah cluster, ail adalah nilai keanggotaan titik data
xi ke pusat cluster Cl, Cl adalah pusat cluster ke-l, D(xi,Cl) adalah jarak titik xi ke cluster Cl yang
diikuti.
◦ Untuk a mempunyai nilai 0 atau 1. Apabila suatu data merupakan anggota suatu kelompok
maka nilai ail =1 , jika tidak, akan maka nilai ail =0
8
Fungsi K-Means di matlab
[IDX,C,sumd,D] = kmeans(X,k)
[IDX,C,sumd,D] = kmeans(...,’distance’,val)
Parameter Keterangan
X Matrik data set MN, dimana M adalah jumlah data, N adalah jumlah fitur.
k Nilai yang menyatakan jumlah cluster
IDX Matrik M1 yang menyatakan indeks cluster yang diikuti setiap data, nilai didalamnya
mulai 1 sampai k. M adalah jumlah data.
C Matrik kN yang menyatakan lokasi centroid setiap cluster, dimana k adalah jumlah
cluster, N adalah jumlah fitur
sumd Matrik 1k yang menyatakan jumlah jarak semua data yang tergabung dalam setiap
cluster.
D Matrik Mk yang menyatakan jarak dari setiap data ke centroid cluster. M adalah jumlah
data, k adalah jumlah cluster.
val Nilai untuk parameter ‘distance’. Pilihan nilainya:
'sqEuclidean', untuk jarak Squared Euclidean, nilai default yang digunakan.
'cityblock', untuk Manhattan (block city).
'Hamming', untuk jarak Hamming (prosentase perbedaan bit), hanya cocok untuk
data biner.
9
Contoh
10
Inisialisasi
Keanggotaan data dalam cluster
(pilih scr acak – dinyatakan dg *) Fungsi objektif (jarak2 dr cluster)
Data ke-i Fitur x Fitur y C1 C2 C3 C1 C2 C3
1 1 1 * 0.0000 0 0 Jarak2 dr cluster 3.
= (4-2.75)2+(1-3.75)2
2 4 1 * 0 0 9.1250
= 1.5625 + 7.5625
3 6 1 * 0 14.6000 0 = 9.125
4 1 2 * 0 9.0000 0
5 2 3 * 0 0 1.1250
6 5 3 * 0 3.2000 0
7 2 5 * 0 3.4000 0
8 3 5 * 0 0 1.6250
9 2 6 * 0 0 5.6250Nilai FO awal = 0
10 3 8 * 0 17.8000 0 Nilai FO baru = 65.5
Perubahan FO = |65.5-0|
0.0000 48.0000 17.5000 = 65.5
Data anggota Fitur x Fitur y
1 1 1 Masih diatas T
M Jumlah x Jumlah y
Data anggota Fitur x Fitur y
1 1 1
Rata-rata 1.0000 1.0000
3 6 1 Centroid awal yang didapat
4 1 2
Data anggota Fitur x Fitur y 6 5 3 Cluster Fitur x Fitur y
2 4 1 7 2 5 1 1.0000 1.0000
5 2 3 10 3 8
2 3.4000 3.8000
8 3 5 M Jumlah x Jumlah y
9 2 6 5 17 19 3 2.7500 3.7500
M Jumlah x Jumlah y Rata-rata 3.4000 3.8000
4 11 15
Rata-rata 2.7500 3.7500 11
Iterasi 1 Jarak data ke 1(1,1) dg
cluster 2(3.40, 3.80)
6 9 6 6
7 8
4 4 4
5 6
2 4 2 2
1 2 3
0 0 0
0 2 4 6 8 0 2 4 6 8 0 2 4 6 8
Data asli Inisialisasi Hasil setelah iterasi 1
8 8 8
6 6 6
4 4 4
2 2 2
0 0 0
0 2 4 6 8 0 2 4 6 8 0 2 4 6 8
Hasil setelah iterasi 2 Hasil setelah iterasi 3 Hasil setelah iterasi 4
16
Proses di matlab
Nama file: dataset_clustering_2_dimensi.m
data = [ Nama file: contoh_kmeans.m
1 1
dataset_clustering_2_dimensi
4 1
k = 3;
6 1
[idx,C,sumd,D] = kmeans(data,k);
1 2
figure('Position',[300 300 210 160]);
2 3
plot(data(idx==1,1),data(idx==1,2),'ko',
5 3
data(idx==2,1),data(idx==2,2),'k+',data(
2 5
idx==3,1),data(idx==3,2),'kd','MarkerSiz
3 5
e',6);
2 6
3 8
axis([0 9,0 9]);
];
hold on
plot(C(:,1),C(:,2),'kx','MarkerSize',8);
hold off
C
display('IDX | JARAK KE C1 | JARAK KE C2
| JARAK KE C3');
[idx D.^0.5]
17
ANY QUESTION ?
TO BE CONTINUED … CLUSTERING (SEASON 2)
18