Anda di halaman 1dari 18

Clustering

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.

Clustering (pengelompokan) melakukan


pemisahan/pemecahan/segmentasi data kedalam sejumlah
cluster (kelompok) menurut karakteristik tertentu yang
diinginkan.
◦ Dalam pekerjaan clustering label dari setiap data belum diketahui,
◦ Diharapkan nantinya dapat diketahui kelompok data untuk kemudian
diberikan label sesuai keinginan.

2
8

Konsep Clustering 4

0
0 2 4 6 8
Data asli
8

Cluster analysis adalah pekerjaan yang 6

mengelompokkan data (obyek) yang didasarkan hanya 4


pada informasi yang ditemukan dalam data yang 2
menggambarkan obyek tersebut dan hubungan
0
diantaranya (Tan, 2006). 0 2 4 6 8
Dua cluster
8
Tujuan: agar obyek-obyek yang bergabung dalam
6
sebuah kelompok (cluster) merupakan obyek-obyek
yang mirip (atau berhubungan) satu sama lain dan 4

berbeda (atau tidak berhubungan) dengan obyek 2

dalam kelompok yang lain. 0


0 2 4 6 8
Tiga cluster
Lebih besar kemiripannya (atau homogenitasnya) 8

dalam kelompok dan lebih besar perbedaannya 6

diantara kelompok yang lain, konsep ini yang dibahas 4


dalam clustering. 2

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.

Penggunaan hasil clustering


◦ Summarization, prototype yang dapat mewakili seluruh data
◦ Compression, data-data dalam cluster yang sama dapat dikompres dengan
diwakili oleh index prototype dari setiap cluster
◦ Efisiensi pencarian tetangga terdekat

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.

Cara mengukur jarak data ke pusat cluster, diantaranya : Euclidean


(Bezdek, 1981), Manhattan/City Block (Miyamoto dan Agusta, 1995),
dan Minkowsky (Miyamoto dan Agusta, 1995)
Euclidean Manhattan/City Block
p 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 Dxi , 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 MN, dimana M adalah jumlah data, N adalah jumlah fitur.
k Nilai yang menyatakan jumlah cluster
IDX Matrik M1 yang menyatakan indeks cluster yang diikuti setiap data, nilai didalamnya
mulai 1 sampai k. M adalah jumlah data.
C Matrik kN yang menyatakan lokasi centroid setiap cluster, dimana k adalah jumlah
cluster, N adalah jumlah fitur
sumd Matrik 1k yang menyatakan jumlah jarak semua data yang tergabung dalam setiap
cluster.
D Matrik Mk 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

Ada 10 data pada data set.


Data ke-i Fitur x Fitur y
Dimensi data ada 2 fitur (agar mudah 1 1 1
dalam visualisasi koordinat kartesius). 2 4 1
Fitur yang digunakan dalam 3 6 1
pengelompokan adalah x dan y 4 1 2
Jarak yang digunakan adalah Euclidean 5 2 3
distance. 6 5 3
7 2 5
Jumlah cluster (K) adalah 3.
8 3 5
Threshold (T) yang digunakan untuk 9 2 6
perubahan fungsi objektif adalah 0.1. 10 3 8

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)

Jarak dan keanggotaan data dalam cluster Fungsi objektif (jarak2)


Data ke-i C1 C2 C3 Min C Baru C1 C2 C3
1 0.0000 3.6878 3.2596 0.0000 1 0.2500 0 0
2 3.0000 2.8636 3.0208 2.8636 2 0 6.8000 0 Ada 4 data berpindah
cluster
3 5.0000 3.8210 4.2573 3.8210 2 0 10.0000 0 2  dari 3 ke 2
4 1.0000 3.0000 2.4749 1.0000 1 0.2500 0 0 4  dari 2 ke 1
5 2.2361 1.6125 1.0607 1.0607 3 0 0 2.7778 7  dari 2 ke 3
6 4.4721 1.7889 2.3717 1.7889 2 8  dari 3 ke 1
0 1.0000 0
7 4.1231 1.8439 1.4577 1.4577 3
0 0 0.1111
8 4.4721 1.2649 1.2748 1.2649 2
0 3.4000 0
9 5.0990 2.6077 2.3717 2.3717 3
10 7.2801 4.2190 4.2573 4.2190 2 0 0 1.7778
0 20.8000 0
0.5000 42.0000 4.6667
Data anggota Fitur x Fitur y
1 1 1 Data anggota Fitur x Fitur y Nilai FO awal = 65.5
4 1 2 Nilai FO baru = 47.1667
2 4 1
M Jumlah x Jumlah y Perubahan FO = |47.1667 - 65.5|
3 6 1 = 18.3333
2 2 3 Masih diatas T
6 5 3
Rata-rata 1.0000 1.5000 8 3 5 Centroid baru yang didapat
10 3 8 Cluster Fitur x Fitur y
Data anggota Fitur x Fitur y
M Jumlah x Jumlah y
5 2 3 1 1.0000 1.5000
5 21 18
7 2 5 2 4.2000 3.6000
Rata-rata 4.2000 3.6000
9 2 6 3 2.000 4.6667
M Jumlah x Jumlah y
3 6 14 12
Rata-rata 2.0000 4.6667
Iterasi 2
Jarak dan keanggotaan data dalam cluster Fungsi objektif
Data ke-i C1 C2 C3 Min C Baru C1 C2 C3
1 0.5000 4.1231 3.8006 0.5000 1 0.2500 0 0
2 3.0414 2.6077 4.1767 2.6077 2 0 1.4444 0 Ada 2 data berpindah
3 5.0249 3.1623 5.4263 3.1623 2 0 1.4444 0 cluster: 8 dan 10
8  dari 2 ke 3
4 0.5000 3.5777 2.8480 0.5000 1 0.2500 0 0 10  dari 2 ke 3
5 1.8028 2.2804 1.6667 1.6667 3 0 0 5.9200
6 4.2720 1.0000 3.4319 1.0000 2 0 1.7778 0
7 3.6401 2.6077 0.3333 0.3333 3
0 0 0.3200
8 4.0311 1.8439 1.0541 1.0541 3
0 0 0.5200
9 4.6098 3.2558 1.3333 1.3333 3
0 0 0.5200
10 6.8007 4.5607 3.4801 3.4801 3
0 0 7.1200
0.5000 4.6667 14.4000
Data anggota Fitur x Fitur y
1 1 1 Nilai FO awal = 47.1667
4 1 2 Data anggota Fitur x Fitur y Nilai FO baru = 19.5667
M Jumlah x Jumlah y 5 2 3 Perubahan FO = |19.5667 - 47.1667|
2 2 3 7 2 5 = 27.6000 Masih diatas T
Rata-rata 1.0000 1.5000 8 3 5 Centroid baru yang didapat
9 2 6
Data anggota Fitur x Fitur y 10 3 8 Cluster Fitur x Fitur y
2 4 1 M Jumlah x Jumlah y 1 1.0000 1.5000
3 6 1 5 12 27 2 5.0000 1.6667
6 5 3 Rata-rata 2.4000 5.4000 3 2.4000 5.4000
M Jumlah x Jumlah y
3 15 5 13
Rata-rata 5.0000 1.6667
Iterasi 3
Jarak dan keanggotaan data dalam cluster Fungsi objektif
Data ke-i C1 C2 C3 Min C Baru C1 C2 C3
1 0.5000 4.0552 4.6174 0.5000 1 1.1111 0 0
2 3.0414 1.2019 4.6819 1.2019 2 0 1.4444 0 Data 5 berpindah
3 5.0249 1.2019 5.6851 1.2019 2 0 1.4444 0 cluster dari 3 ke 1
4 0.5000 4.0139 3.6770 0.5000 1 0.1111 0 0
5 1.8028 3.2830 2.4331 1.8028 1 1.4444 0 0
6 4.2720 1.3333 3.5384 1.3333 2 0 1.7778 0
7 3.6401 4.4845 0.5657 0.5657 3
0 0 1.2500
8 4.0311 3.8873 0.7211 0.7211 3
0 0 1.2500
9 4.6098 5.2705 0.7211 0.7211 3
0 0 0.2500
10 6.8007 6.6416 2.6683 2.6683 3
0 0 4.2500
Data anggota Fitur x Fitur y 2.6667 4.6667 7.0000
1 1 1 Nilai FO awal = 19.5667
4 1 2 Data anggota Fitur x Fitur y Nilai FO baru = 14.3333
5 2 3 7 2 5 Perubahan FO = |14.3333 - 19.5667|
M Jumlah x Jumlah y 8 3 5 = 5.2333 Masih diatas T
3 4 6 9 2 6 Centroid baru yang didapat
Rata-rata 1.3333 2.0000 10 3 8
Data anggota Fitur x Fitur y M Jumlah x Jumlah y Cluster Fitur x Fitur y
2 4 1 4 10 24 1 1.3333 2.0000
3 6 1 Rata-rata 2.5000 6.0000 2 5.0000 1.6667
6 5 3 3 2.5000 6.0000
M Jumlah x Jumlah y
3 15 5 14
Rata-rata 5.0000 1.6667
Iterasi 4
Jarak dan keanggotaan data dalam cluster Fungsi objektif
Data ke-i C1 C2 C3 Min C Baru C1 C2 C3
1 1.0541 4.0552 5.2202 1.0541 1 1.1111 0 0
2 2.8480 1.2019 5.2202 1.2019 2 0 1.4444 0 Tidak ada data yang
3 4.7726 1.2019 6.1033 1.2019 2 0 1.4444 0 berpindah cluster
4 0.3333 4.0139 4.2720 0.3333 1 0.1111 0 0
5 1.2019 3.2830 3.0414 1.2019 1 1.4444 0 0
6 3.8006 1.3333 3.9051 1.3333 2 0 1.7778 0
7 3.0732 4.4845 1.1180 1.1180 3
0 0 1.2500
8 3.4319 3.8873 1.1180 1.1180 3
0 0 1.2500
9 4.0552 5.2705 0.5000 0.5000 3
0 0 0.2500
10 6.2272 6.6416 2.0616 2.0616 3
0 0 4.2500
Data anggota Fitur x Fitur y 2.6667 4.6667 7.0000
1 1 1 Nilai FO awal = 14.3333
4 1 2 Data anggota Fitur x Fitur y Nilai FO baru = 14.3333
5 2 3 7 2 5 Perubahan FO = |14.3333 – 14.3333|
M Jumlah x Jumlah y 8 3 5 = 0.0000 Sudah dibawah T
3 4 6 9 2 6 Centroid baru yang didapat
Rata-rata 1.3333 2.0000 10 3 8
Data anggota Fitur x Fitur y M Jumlah x Jumlah y Cluster Fitur x Fitur y
2 4 1 4 10 24 1 1.3333 2.0000
3 6 1 Rata-rata 2.5000 6.0000 2 5.0000 1.6667
6 5 3 3 2.5000 6.0000
M Jumlah x Jumlah y
3 15 5 15
Rata-rata 5.0000 1.6667
Perubahan hasil clustering
8 10 8 8

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

Anda mungkin juga menyukai