Clustering (Season 1) K-Means Pengenalan Pola Materi 4 Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012
Konsep Clustering Klasifikasi melakukan pengelompokan data dimana setiap data sudah ada label kelasnya Shingga 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.
Konsep Clustering Cluster analysis adalah pekerjaan yang mengelompokkan data (obyek) yang didasarkan hanya pada informasi yang ditemukan dalam data yang menggambarkan obyek tersebut dan hubungan diantaranya (Tan, 2006). Tujuan: agar obyek-obyek yang bergabung dalam sebuah kelompok (cluster) merupakan obyek-obyek yang mirip (atau berhubungan) satu sama lain dan berbeda (atau tidak berhubungan) dengan obyek dalam kelompok yang lain. Lebih besar kemiripannya (atau homogenitasnya) dalam kelompok dan lebih besar perbedaannya diantara kelompok yang lain, konsep ini yang dibahas dalam clustering. Data asli Dua cluster Tiga cluster Empat cluster
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, protoype 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
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.
Algoritma K-Means Tentukan jumlah kelompok Alokasikan data ke dalam kelompok secara acak Hitung pusat cluster (centroid/rata-rata) dari data yang ada di masing-masing cluster Alokasikan masing-masing data ke centroid/rata-rata terdekat 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
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: 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) Manhattan/City Block Euclidean
Algoritma K-Means Pengalokasian data ke cluster dapat dirumuskan sebagai berikut (MacQueen, 1967): 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 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
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.
Contoh Ada 10 data pada data set. Data ke-i Fitur x Fitur y 1 2 4 3 6 5 7 8 9 10 Ada 10 data pada data set. Dimensi data ada 2 fitur (agar mudah dalam visualisasi koordinat kartesius). Fitur yang digunakan dalam pengelompokan adalah x dan y Jarak yang digunakan adalah Euclidean distance. Jumlah cluster (K) adalah 3. Threshold (T) yang digunakan untuk perubahan fungsi objektif adalah 0.1.
Inisialisasi Keanggotaan data dalam cluster Fungsi objektif Data ke-i Fitur x Fitur y C1 C2 C3 1 * 2 4 3 6 5 7 8 9 10 C1 C2 C3 0.0000 0 0 9.1250 14.6000 9.0000 1.1250 3.2000 3.4000 1.6250 5.6250 17.8000 48.0000 17.5000 Nilai FO awal = 0 Nilai FO baru = 65.5 Perubahan FO = |65.5-0| = 65.5 Data anggota Fitur x Fitur y 1 M Jumlah x Jumlah y 11 Rata-rata 1.0000 Masih diatas T Data anggota Fitur x Fitur y 3 6 1 4 2 5 7 10 8 M Jumlah x Jumlah y 17 19 Rata-rata 3.4000 3.8000 Centroid awal yang didapat Data anggota Fitur x Fitur y 2 4 1 5 3 8 9 6 M Jumlah x Jumlah y 11 15 Rata-rata 2.7500 3.7500 Cluster Fitur x Fitur y 1 1.0000 2 3.4000 3.8000 3 2.7500 3.7500
Iterasi 1 Jarak dan keanggotaan data dalam cluster Fungsi objektif Data ke-i C1 C2 C3 Min C Baru 1 0.0000 3.6878 3.2596 2 3.0000 2.8636 3.0208 3 5.0000 3.8210 4.2573 4 1.0000 2.4749 5 2.2361 1.6125 1.0607 6 4.4721 1.7889 2.3717 7 4.1231 1.8439 1.4577 8 1.2649 1.2748 9 5.0990 2.6077 10 7.2801 4.2190 C1 C2 C3 0.2500 0 0 6.8000 10.0000 2.7778 1.0000 0.1111 3.4000 1.7778 20.8000 0.5000 42.0000 4.6667 Ada 4 data berpindah cluster 2 dari 3 ke 2 4 dari 2 ke 1 7 dari 2 ke 3 8 dari 3 ke 1 Data anggota Fitur x Fitur y 1 4 2 M Jumlah x Jumlah y 3 Rata-rata 1.0000 1.5000 Nilai FO awal = 65.5 Nilai FO baru = 47.1667 Perubahan FO = |47.1667 - 65.5| = 18.3333 Data anggota Fitur x Fitur y 2 4 1 3 6 5 8 10 M Jumlah x Jumlah y 21 18 Rata-rata 4.2000 3.6000 Masih diatas T Centroid baru yang didapat Data anggota Fitur x Fitur y 5 2 3 7 9 6 M Jumlah x Jumlah y 14 Rata-rata 2.0000 4.6667 Cluster Fitur x Fitur y 1 1.0000 1.5000 2 4.2000 3.6000 3 2.000 4.6667
Iterasi 2 Jarak dan keanggotaan data dalam cluster Fungsi objektif Data ke-i C1 C2 C3 Min C Baru 1 0.5000 4.1231 3.8006 2 3.0414 2.6077 4.1767 3 5.0249 3.1623 5.4263 4 3.5777 2.8480 5 1.8028 2.2804 1.6667 6 4.2720 1.0000 3.4319 7 3.6401 0.3333 8 4.0311 1.8439 1.0541 9 4.6098 3.2558 1.3333 10 6.8007 4.5607 3.4801 C1 C2 C3 0.2500 0 1.4444 5.9200 1.7778 0.3200 0.5200 7.1200 0.5000 4.6667 14.4000 Ada 2 data berpindah cluster: 8 dan 10 8 dari 2 ke 3 10 dari 2 ke 3 Data anggota Fitur x Fitur y 1 4 2 M Jumlah x Jumlah y 3 Rata-rata 1.0000 1.5000 Nilai FO awal = 47.1667 Nilai FO baru = 19.5667 Perubahan FO = |19.5667 - 47.1667| = 27.6000 Data anggota Fitur x Fitur y 5 2 3 7 8 9 6 10 M Jumlah x Jumlah y 12 27 Rata-rata 2.4000 5.4000 Masih diatas T Centroid baru yang didapat Data anggota Fitur x Fitur y 2 4 1 3 6 5 M Jumlah x Jumlah y 15 Rata-rata 5.0000 1.6667 Cluster Fitur x Fitur y 1 1.0000 1.5000 2 5.0000 1.6667 3 2.4000 5.4000
Iterasi 3 Jarak dan keanggotaan data dalam cluster Fungsi objektif Data ke-i C1 C2 C3 Min C Baru 1 0.5000 4.0552 4.6174 2 3.0414 1.2019 4.6819 3 5.0249 5.6851 4 4.0139 3.6770 5 1.8028 3.2830 2.4331 6 4.2720 1.3333 3.5384 7 3.6401 4.4845 0.5657 8 4.0311 3.8873 0.7211 9 4.6098 5.2705 10 6.8007 6.6416 2.6683 C1 C2 C3 1.1111 0 1.4444 0.1111 1.7778 1.2500 0.2500 4.2500 2.6667 4.6667 7.0000 Data 5 berpindah cluster dari 3 ke 1 Data anggota Fitur x Fitur y 1 4 2 5 3 M Jumlah x Jumlah y 6 Rata-rata 1.3333 2.0000 Nilai FO awal = 19.5667 Nilai FO baru = 14.3333 Perubahan FO = |14.3333 - 19.5667| = 5.2333 Data anggota Fitur x Fitur y 7 2 5 8 3 9 6 10 M Jumlah x Jumlah y 4 24 Rata-rata 2.5000 6.0000 Masih diatas T Centroid baru yang didapat Data anggota Fitur x Fitur y 2 4 1 3 6 5 M Jumlah x Jumlah y 15 Rata-rata 5.0000 1.6667 Cluster Fitur x Fitur y 1 1.3333 2.0000 2 5.0000 1.6667 3 2.5000 6.0000
Iterasi 4 Jarak dan keanggotaan data dalam cluster Fungsi objektif Data ke-i C1 C2 C3 Min C Baru 1 1.0541 4.0552 5.2202 2 2.8480 1.2019 3 4.7726 6.1033 4 0.3333 4.0139 4.2720 5 3.2830 3.0414 6 3.8006 1.3333 3.9051 7 3.0732 4.4845 1.1180 8 3.4319 3.8873 9 5.2705 0.5000 10 6.2272 6.6416 2.0616 C1 C2 C3 1.1111 0 1.4444 0.1111 1.7778 1.2500 0.2500 4.2500 2.6667 4.6667 7.0000 Tidak ada data yang berpindah cluster Data anggota Fitur x Fitur y 1 4 2 5 3 M Jumlah x Jumlah y 6 Rata-rata 1.3333 2.0000 Nilai FO awal = 14.3333 Nilai FO baru = 14.3333 Perubahan FO = |14.3333 – 14.3333| = 0.0000 Data anggota Fitur x Fitur y 7 2 5 8 3 9 6 10 M Jumlah x Jumlah y 4 24 Rata-rata 2.5000 6.0000 Sudah dibawah T Centroid baru yang didapat Data anggota Fitur x Fitur y 2 4 1 3 6 5 M Jumlah x Jumlah y 15 Rata-rata 5.0000 1.6667 Cluster Fitur x Fitur y 1 1.3333 2.0000 2 5.0000 1.6667 3 2.5000 6.0000
Perubahan hasil clustering Data asli Inisialisasi Hasil setelah iterasi 1 Hasil setelah iterasi 2 Hasil setelah iterasi 3 Hasil setelah iterasi 4
Proses di matlab Nama file: dataset_clustering_2_dimensi.m 1 1 4 1 6 1 1 2 2 3 5 3 2 5 3 5 2 6 3 8 ]; Nama file: contoh_kmeans.m 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','MarkerSize',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]
To Be Continued … Clustering (Season 2) ANY QUESTION ?