clustering k-means

18
Clustering K - Means

Upload: others

Post on 01-Dec-2021

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clustering K-Means

Clustering K-Means

Page 2: 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

Page 3: Clustering K-Means

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

Page 4: Clustering K-Means

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

Page 5: Clustering K-Means

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

Page 6: Clustering K-Means

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

Page 7: Clustering K-Means

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

Page 8: Clustering K-Means

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,

Page 9: Clustering K-Means

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.

Page 10: Clustering K-Means

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

Page 11: Clustering K-Means

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

Page 12: Clustering K-Means

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

Page 13: Clustering K-Means

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

Page 14: Clustering K-Means

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

Page 15: Clustering K-Means

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

Page 16: Clustering K-Means

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

Page 17: Clustering K-Means

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

Page 18: Clustering K-Means

ANY QUESTION ?TO BE CONTINUED … CLUSTERING (SEASON 2)

18