clustering k-means
TRANSCRIPT
Clustering K-Means
Konsep ClusteringKlasifikasi melakukan pengelompokan data dimana setiapdata sudah ada label kelasnya◦ Sehingga pekerjaan berikutnya adalah membuat model untuk dapat
melakukan prediksi pada data baru yang kemudian muncul untukdiketahui kelasnya.
Clustering (pengelompokan) melakukanpemisahan/pemecahan/segmentasi data kedalam sejumlahcluster (kelompok) menurut karakteristik tertentu yang diinginkan. ◦ Dalam pekerjaan clustering label dari setiap data belum diketahui,
◦ Diharapkan nantinya dapat diketahui kelompok data untuk kemudiandiberikan label sesuai keinginan.
2
Konsep Clustering
Cluster analysis adalah pekerjaan yang mengelompokkan data (obyek) yang didasarkan hanyapada informasi yang ditemukan dalam data yang menggambarkan obyek tersebut dan hubungandiantaranya (Tan, 2006).
Tujuan: agar obyek-obyek yang bergabung dalamsebuah kelompok (cluster) merupakan obyek-obyekyang mirip (atau berhubungan) satu sama lain danberbeda (atau tidak berhubungan) dengan obyekdalam kelompok yang lain.
Lebih besar kemiripannya (atau homogenitasnya) dalam kelompok dan lebih besar perbedaannyadiantara kelompok yang lain, konsep ini yang dibahasdalam clustering.
3
0 2 4 6 80
2
4
6
8
0 2 4 6 80
2
4
6
8
0 2 4 6 80
2
4
6
8
0 2 4 6 80
2
4
6
8
Data asli
Dua cluster
Tiga cluster
Empat cluster
Konsep ClusteringBidang 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 penyakitpasien.
◦ Kesehatan, dapat digunakan untuk mengelompokkan jenis-jenis makananberdasarkan kandungan kalori, vitamin, protein.
Penggunaan hasil clustering◦ Summarization, prototype yang dapat mewakili seluruh data
◦ Compression, data-data dalam cluster yang sama dapat dikompres dengandiwakili oleh index prototype dari setiap cluster
◦ Efisiensi pencarian tetangga terdekat
4
K-MeansMetode analisis cluster yang mengarah pada pemartisian N obyekpengamatan kedalam K kelompok (cluster) dimana setiap obyekpengamatan 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 prosespengelompokan, yang pada umumnya berusaha meminimalisasikan variasidi dalam suatu cluster dan memaksimalkan variasi antar cluster.
5
Algoritma K-Means1. Tentukan jumlah kelompok
2. Alokasikan data ke dalam kelompok secara acak
3. Hitung pusat cluster (centroid/rata-rata) dari data yang ada dimasing-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 digunakanmasih di atas nilai threshold yang ditentukan
6
Algoritma K-Means
Jika M menyatakan jumlah data dalam sebuah cluster, i menyatakanfitur ke-i dalam sebuah cluster dan p menyatakan dimensi data, makauntuk menghitung centroid fitur ke-i digunakan formula:
◦ 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)
7
M
jji x
MC
1
1
p
j
jj xxxxxxD1
2
1221212 ),(
p
j
jj xxxxxxD1
1211212 ),(
Euclidean Manhattan/City Block
Algoritma K-MeansPengalokasian data ke cluster dapat dirumuskan sebagai berikut (MacQueen, 1967):
◦ Dimana ail adalah nilai keanggotaan titik xi ke pusat cluster Cl, d adalah jarak terpendek daridata xi ke K cluster setelah dibandingkan, dan Cl centroid (pusat cluster) ke-l.
Fungsi objektif berdasarkan jarak dan nilai keanggotaan data dalam cluster
◦ 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 kelompokmaka nilai ail =1 , jika tidak, akan maka nilai ail =0
8
lainnya
CxDda
liil
0
)},(min{1
N
i
K
lliic CxDaJ
1 1
2,
Fungsi K-Means di matlab
[IDX,C,sumd,D] = kmeans(X,k)
[IDX,C,sumd,D] = kmeans(...,’distance’,val)
9
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.
Contoh
Ada 10 data pada data set.
Dimensi data ada 2 fitur (agar mudahdalam visualisasi koordinat kartesius).
Fitur yang digunakan dalampengelompokan adalah x dan y
Jarak yang digunakan adalah Euclidean distance.
Jumlah cluster (K) adalah 3.
Threshold (T) yang digunakan untukperubahan fungsi objektif adalah 0.1.
10
Data ke-i Fitur x Fitur y
1 1 1
2 4 1
3 6 1
4 1 2
5 2 3
6 5 3
7 2 5
8 3 5
9 2 6
10 3 8
11
Inisialisasi
Data ke-i Fitur x Fitur y C1 C2 C3
1 1 1 *
2 4 1 *
3 6 1 *
4 1 2 *
5 2 3 *
6 5 3 *
7 2 5 *
8 3 5 *
9 2 6 *
10 3 8 *
Centroid awal yang didapat
Cluster Fitur x Fitur y
1 1.0000 1.0000
2 3.4000 3.8000
3 2.7500 3.7500
Data anggota Fitur x Fitur y
3 6 1
4 1 2
6 5 3
7 2 5
10 3 8
M Jumlah x Jumlah y
5 17 19
Rata-rata 3.4000 3.8000
Data anggota Fitur x Fitur y
2 4 1
5 2 3
8 3 5
9 2 6
M Jumlah x Jumlah y
4 11 15
Rata-rata 2.7500 3.7500
C1 C2 C3
0.0000 0 0
0 0 9.1250
0 14.6000 0
0 9.0000 0
0 0 1.1250
0 3.2000 0
0 3.4000 0
0 0 1.6250
0 0 5.6250
0 17.8000 0
0.0000 48.0000 17.5000
Keanggotaan data dalam cluster(pilih scr acak – dinyatakan dg *) Fungsi objektif (jarak2 dr cluster)
Nilai FO awal = 0Nilai FO baru = 65.5Perubahan FO = |65.5-0|
= 65.5
Masih diatas T
Data anggota Fitur x Fitur y
1 1 1
M Jumlah x Jumlah y
1 1 1
Rata-rata 1.0000 1.0000
Jarak2 dr cluster 3.= (4-2.75)2+(1-3.75)2
= 1.5625 + 7.5625= 9.125
Jarak data ke 1(1,1) dg cluster 2(3.40, 3.80)
12
Iterasi 1
Data ke-i C1 C2 C3 Min C Baru
1 0.0000 3.6878 3.2596 0.0000 1
2 3.0000 2.8636 3.0208 2.8636 2
3 5.0000 3.8210 4.2573 3.8210 2
4 1.0000 3.0000 2.4749 1.0000 1
5 2.2361 1.6125 1.0607 1.0607 3
6 4.4721 1.7889 2.3717 1.7889 2
7 4.1231 1.8439 1.4577 1.4577 3
8 4.4721 1.2649 1.2748 1.2649 2
9 5.0990 2.6077 2.3717 2.3717 3
10 7.2801 4.2190 4.2573 4.2190 2
Jarak dan keanggotaan data dalam cluster
Centroid baru yang didapat
Data anggota Fitur x Fitur y
1 1 1
4 1 2
M Jumlah x Jumlah y
2 2 3
Rata-rata 1.0000 1.5000
Cluster Fitur x Fitur y
1 1.0000 1.5000
2 4.2000 3.6000
3 2.000 4.6667
Data anggota Fitur x Fitur y
2 4 1
3 6 1
6 5 3
8 3 5
10 3 8
M Jumlah x Jumlah y
5 21 18
Rata-rata 4.2000 3.6000
Data anggota Fitur x Fitur y
5 2 3
7 2 5
9 2 6
M Jumlah x Jumlah y
3 6 14
Rata-rata 2.0000 4.6667
C1 C2 C3
0.2500 0 0
0 6.8000 0
0 10.0000 0
0.2500 0 0
0 0 2.7778
0 1.0000 0
0 0 0.1111
0 3.4000 0
0 0 1.7778
0 20.8000 0
0.5000 42.0000 4.6667
Nilai FO awal = 65.5Nilai FO baru = 47.1667Perubahan FO = |47.1667 - 65.5|
= 18.3333 Masih diatas T
Fungsi objektif (jarak2)
Ada 4 data berpindahcluster2 dari 3 ke 24 dari 2 ke 17 dari 2 ke 38 dari 3 ke 1
13
Iterasi 2
Data ke-i C1 C2 C3 Min C Baru
1 0.5000 4.1231 3.8006 0.5000 1
2 3.0414 2.6077 4.1767 2.6077 2
3 5.0249 3.1623 5.4263 3.1623 2
4 0.5000 3.5777 2.8480 0.5000 1
5 1.8028 2.2804 1.6667 1.6667 3
6 4.2720 1.0000 3.4319 1.0000 2
7 3.6401 2.6077 0.3333 0.3333 3
8 4.0311 1.8439 1.0541 1.0541 3
9 4.6098 3.2558 1.3333 1.3333 3
10 6.8007 4.5607 3.4801 3.4801 3
Jarak dan keanggotaan data dalam cluster
Centroid baru yang didapat
Data anggota Fitur x Fitur y
1 1 1
4 1 2
M Jumlah x Jumlah y
2 2 3
Rata-rata 1.0000 1.5000
Cluster Fitur x Fitur y
1 1.0000 1.5000
2 5.0000 1.6667
3 2.4000 5.4000
Nilai FO awal = 47.1667Nilai FO baru = 19.5667Perubahan FO = |19.5667 - 47.1667|
= 27.6000 Masih diatas T
Fungsi objektif
Data anggota Fitur x Fitur y
2 4 1
3 6 1
6 5 3
M Jumlah x Jumlah y
3 15 5
Rata-rata 5.0000 1.6667
Data anggota Fitur x Fitur y
5 2 3
7 2 5
8 3 5
9 2 6
10 3 8
M Jumlah x Jumlah y
5 12 27
Rata-rata 2.4000 5.4000
C1 C2 C3
0.2500 0 0
0 1.4444 0
0 1.4444 0
0.2500 0 0
0 0 5.9200
0 1.7778 0
0 0 0.3200
0 0 0.5200
0 0 0.5200
0 0 7.1200
0.5000 4.6667 14.4000
Ada 2 data berpindahcluster: 8 dan 108 dari 2 ke 310 dari 2 ke 3
14
Iterasi 3
Data ke-i C1 C2 C3 Min C Baru
1 0.5000 4.0552 4.6174 0.5000 1
2 3.0414 1.2019 4.6819 1.2019 2
3 5.0249 1.2019 5.6851 1.2019 2
4 0.5000 4.0139 3.6770 0.5000 1
5 1.8028 3.2830 2.4331 1.8028 1
6 4.2720 1.3333 3.5384 1.3333 2
7 3.6401 4.4845 0.5657 0.5657 3
8 4.0311 3.8873 0.7211 0.7211 3
9 4.6098 5.2705 0.7211 0.7211 3
10 6.8007 6.6416 2.6683 2.6683 3
Jarak dan keanggotaan data dalam cluster
Centroid baru yang didapat
Cluster Fitur x Fitur y
1 1.3333 2.0000
2 5.0000 1.6667
3 2.5000 6.0000
Nilai FO awal = 19.5667Nilai FO baru = 14.3333Perubahan FO = |14.3333 - 19.5667|
= 5.2333 Masih diatas T
Fungsi objektif
Data anggota Fitur x Fitur y
2 4 1
3 6 1
6 5 3
M Jumlah x Jumlah y
3 15 5
Rata-rata 5.0000 1.6667
C1 C2 C3
1.1111 0 0
0 1.4444 0
0 1.4444 0
0.1111 0 0
1.4444 0 0
0 1.7778 0
0 0 1.2500
0 0 1.2500
0 0 0.2500
0 0 4.2500
2.6667 4.6667 7.0000Data anggota Fitur x Fitur y
1 1 1
4 1 2
5 2 3
M Jumlah x Jumlah y
3 4 6
Rata-rata 1.3333 2.0000
Data anggota Fitur x Fitur y
7 2 5
8 3 5
9 2 6
10 3 8
M Jumlah x Jumlah y
4 10 24
Rata-rata 2.5000 6.0000
Data 5 berpindahcluster dari 3 ke 1
15
Iterasi 4
Data ke-i C1 C2 C3 Min C Baru
1 1.0541 4.0552 5.2202 1.0541 1
2 2.8480 1.2019 5.2202 1.2019 2
3 4.7726 1.2019 6.1033 1.2019 2
4 0.3333 4.0139 4.2720 0.3333 1
5 1.2019 3.2830 3.0414 1.2019 1
6 3.8006 1.3333 3.9051 1.3333 2
7 3.0732 4.4845 1.1180 1.1180 3
8 3.4319 3.8873 1.1180 1.1180 3
9 4.0552 5.2705 0.5000 0.5000 3
10 6.2272 6.6416 2.0616 2.0616 3
Jarak dan keanggotaan data dalam cluster
Centroid baru yang didapat
Cluster Fitur x Fitur y
1 1.3333 2.0000
2 5.0000 1.6667
3 2.5000 6.0000
Nilai FO awal = 14.3333Nilai FO baru = 14.3333Perubahan FO = |14.3333 – 14.3333|
= 0.0000 Sudah dibawah T
Fungsi objektif
Data anggota Fitur x Fitur y
2 4 1
3 6 1
6 5 3
M Jumlah x Jumlah y
3 15 5
Rata-rata 5.0000 1.6667
C1 C2 C3
1.1111 0 0
0 1.4444 0
0 1.4444 0
0.1111 0 0
1.4444 0 0
0 1.7778 0
0 0 1.2500
0 0 1.2500
0 0 0.2500
0 0 4.2500
2.6667 4.6667 7.0000Data anggota Fitur x Fitur y
1 1 1
4 1 2
5 2 3
M Jumlah x Jumlah y
3 4 6
Rata-rata 1.3333 2.0000
Data anggota Fitur x Fitur y
7 2 5
8 3 5
9 2 6
10 3 8
M Jumlah x Jumlah y
4 10 24
Rata-rata 2.5000 6.0000
Tidak ada data yang berpindah cluster
16
Perubahan hasil clustering
0 2 4 6 80
2
4
6
8
1 2 3
4
5 6
7 8
9
10
0 2 4 6 80
2
4
6
8
0 2 4 6 80
2
4
6
8
0 2 4 6 80
2
4
6
8
0 2 4 6 80
2
4
6
8
0 2 4 6 80
2
4
6
8
Data asli Inisialisasi Hasil setelah iterasi 1
Hasil setelah iterasi 2 Hasil setelah iterasi 3 Hasil setelah iterasi 4
17
Proses di matlab
data = [
1 1
4 1
6 1
1 2
2 3
5 3
2 5
3 5
2 6
3 8
];
dataset_clustering_2_dimensi
k = 3;
[idx,C,sumd,D] = kmeans(data,k);
figure('Position',[300 300 210 160]);
plot(data(idx==1,1),data(idx==1,2),'ko',
data(idx==2,1),data(idx==2,2),'k+',data(
idx==3,1),data(idx==3,2),'kd','MarkerSiz
e',6);
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]
Nama file: dataset_clustering_2_dimensi.m
Nama file: contoh_kmeans.m
ANY QUESTION ?TO BE CONTINUED … CLUSTERING (SEASON 2)
18