Senin, 06 Juli 2015

Implementasi Fuzzy C Means Clustering



Clustering adalah bahasan cukup sering kita dengar pada teknik data minning. Ada banyak teknik yang bisa kita gunakan, mulai dari algoritma kmeans clustering, k-nearest neighbor, ataupun fuzzy c-means clustering, kohonen (versi  LVQ unsupervisi). Contoh kasus yang mudah digunakan yaitu bila  melibatkan hanya 2 paramater saja karena bila diplotkan kedalam sumbu x dan y akan cukup mudah dilihat sebaran datanya!. Data berikut merupakan sebaran nilai dari 2 paramater



Bila kita plotkan menjadi berikut



Hal menarik dari distribusi data diatas adalah terjadinya pengelompokan data, untuk itu kita bisa menggunakan algoritma kmeans clustering, k-nearest neighbor, ataupun fuzzy c-means clustering. 

Penulis menggunakan fuzzy c-means clustering untuk menentukan center tiap kelompok data. Kamu bisa membaca tutorial di https://edrianhadinata.wordpress.com/2013/12/19/metode-clustering-algoritma-fuzzy-cmeans/.

Penulis mengimplementasikan nya menggunakan bahasa C#, kamu bisa melihat potongan kode berikut



double[,] data = new double[,] { 
 {10,8},
 {4,5},
 {2,3},
 {9,7},
 {0,1}
};
int data_n = data.GetLength(0); //jumlah data
int in_n = data.GetLength(1); //jumlah paramater
int cluster_n = 2; //jumlah cluster
int max_iterasi = 10;
double min_impro = 0.0001;            
int expo = 2; //sering disebut bobot    
//sebagai nilai keanggotaan awal
double [,] U = new double[,] {
 {0.3000,    0.6000, 0.7000,   0.4000,0.8000},
 {0.7000,   0.4000,   0.3000, 0.6000,    0.2000}
 };
FCM fcm = new FCM();
fcm.Hitung(data, U, cluster_n,expo, min_impro,max_iterasi);            
double[,] UNew = fcm.UNew;
double[,] center = fcm.Center;
int[] kelas = fcm.Kelas;
Program.Cetak("Center ",center);
Program.Cetak("U Baru ",UNew);
Program.Cetak("Kelas ",kelas);


       
 



Menghasilkan

       

Center 
1.751 2.75 
9.349 7.428 
U Baru 
0.008 0.773 0.998 0.004 0.955 
0.992 0.227 0.002 0.996 0.045 
Kelas 
1 0 0 1 0

       
 

Agar lebih informatif, penulis tulis kan saja dalam bentuk tabel di excel


Kita plotkan menjadi berikut



Fuzzy c-means clustering dapat digunakan untuk melakukan pengelompokan data – klustering.


Posting Komentar