Fuzzy C Means Clustering dan Implementasinya Untuk Penentuan Beasiswa Menggunakan Matlab My Scribbling Blog

Fuzzy C­Means Clustering dan Implementasinya Untuk Penentuan
Beasiswa Menggunakan Matlab
8.57.00 PM  

MATLAB, MK. Kecerdasan Buatan  

2 comments

Sobat blogger, sebagaimana yang pernah saya jelaskan pada materi sebelumnya,
pengklusteran  secara  prinsip  terbagi  menjadi  dua  yaitu  pengklusteran  kasar  dan
pengklusteran halus. Saya telah jelaskan panjang lebar perihal metode K­Nearest
Neighbourhood  sebagai  bentuk  pengklusteran  kasar.  Sekarang,  saatnya  beralih
menuju pengklusteran halus, yang dalam hal ini dimotori oleh metode keren Fuzzy
C­Means Clustering. 
Untuk  merefresh  pemahaman  kita,  sebenarnya  dimana  titik  perbedaan  antara
pengklusteran  kasar  dan  pengklasteran  halus?  Pengklusteran  kasar  akan
membandingkan  satu  kelas  dengan  kelas  lainnya  melalui  mekanisme  biasa  tanpa  melibatkan  logika  kabur  (fuzzy),
contohnya kita memiliki dua kelas klasifikasi yaitu kelas asin dan manis, maka jika ada sebuah objek baru yang kita tes
untuk  diklasifikasikan,  otomatis  objek  tes  tersebut  masuk  klasifikasi  asin  atau  manis,  bukan  agak  manis  maupun  sedikit
asin.  Jadi,  pengklusteran  kasar  menggambarkan  ketegasan  klasifikasi  sesuai  dengan  kecocokan  kelas.    Sedangkan
pengklusteran halus memiliki mekanisme lain. Simak penjelasan teorinya dengan seksama. 

Fuzzy  C­Means  Clustering  membutuhkan  pelatihan  untuk  memperoleh  matriks  derajat  keanggotaan  yang  nantinya
digunakan  sebagai  basis  klasifikasi  dan  untuk  mengetahui  pusat  klusternya.  Berbeda  dengan  k­NN  yang  hanya
menjadikan data pelatihan sebagai basis klasifikasi. 
Untuk memulai mekanisme FCM, terlebih dahulu membuat jumlah kelas yang akan dijadikan basis klasifikasi, misalnya
dalam studi kasus saya, yaitu penentuan beasiswa jumlah kelas yang saya buat sebanyak dua kelas, yaitu mendapatkan
beasiswa dan tidak mendapatkan beasiswa. Metode FCM nantinya kan menghasilkan smooth finishing (hasil yang halus)
karena pembobotan yang digunakan berdasarkan himpunan fuzzy. Sebenarnya apa yang dimaksud dengan hasil yang
halus?  Kehalusan  disini  berarti  objek  pengamatan  tidak  mutlak  untuk  menjadi  anggota  satu  kelompok  saja,  melainkan
juga dimungkinkan untuk menjadi anggota kelompok lain dengan ukuran tingkat yang berbeda.  Oleh karena itu, objek
akan cenderung menjadi anggota kelompok tertentu dimana tingkat keanggotaan objek dalam kelompok itu paling besar
dibandingkan dengan kelompok lainnya (Prabowo, dkk, 2013). 
Algoritma dalam pembuatan FCM secara teori cukup panjang, dan saya tidak ingin berbelit­belit membahas teoremanya.
Jadi,  silakan  teman­teman  jelajahi  sendiri  melalui  referensi  lain  yang  lebih  lengkap.  Saya  akan  langsung  menuju
implementasi studi kasus untuk penentuan beasiswa. 
Penyelesaian Kasus Penentuan Beasiswa dengan Metode FCM 
Langkah pertama untuk mengimplementasikan FCM pada matlab adalah dengan menentukan titik pusat kluster, titik pusat
kluster yang ditentukan berjumlah sama dengan jumlah kelas. Nantinya, suatu data termasuk dalam kluster tertentu ketika
jaraknya terdekat dengan pusat klusternya disbanding dengan jarak terhadap pusat kluster yang lain. Penentuan titik pusat
kluter tidak lepas dari adanya data training. Data training yang saya miliki adalah data seperti gambar dibawah ini, saya
simpan dalam format .dat agar dapat dikenali Matlab : 


Data Training pada Notepad

Pada  data  training,  kolom  pertama  merepresentasikan  IPK  Mahasiswa,  sedangkan  kolom  kedua  adalah  Tingkat

kemiskinan.  Tidak  ada  kolom  ketiga  sebagai  target,  karena  FCM  akan  menentukan  klasifikasi  berdasarkan  nilai  kluster
yang dibuat.
Lantas, buka command window matlab, ketikkan findcluster untuk memunculkan jendela pengaturan titik pusat cluster.

Di  sebelah  kanan  jendela,  ada  banyak  yang  harus  kita  isikan.  Pilih  load  data  untuk  mengambil  data  training.
Untuk  metode,  silakan  pilih  FCM  karena  memang  metode  itu  yang  kita  gunakan.  Cluster  Num  adalah  jumlah  kelas
klasifikasi  yang  kita  butuhkan,  dalam  hal  ini  adalah  kelas  "mendapatkan  beasiswa"  dan  kelas  "tidak  mendapatkan
besiswa", maka saya isikan 2. Namun, tidak menutup kemungkinan jika teman­teman mengisikan lebih dari 2, misalkan 3,
4, ataupun lebih.

Hasil Pencarian Titik Pusat Cluster

Setelah  itu,  klik  start  untuk  memulai  proses  penentuan  titik  kluster.  Setelah  proses  selesai,  simpan  hasilnya  dengan
format  .dat,  misalnya  pusatKluster.dat.  Titik  pusat  kluster  inilah  alat  penentu  keputusan  dari  data  baru  yang  kita  cari
klasifikasinya.

Sekarang, kita buat rancangan program GUInya pada matlab.

Komponen  terpenting  dari  GUI  diatas  adalah  3  text  field  dan  1  button,  karena  komponen­komponen  itulah  yang
mempengarui source code. 
Text field indeks prestasi saya namai ipk
Text field tingkat kemiskinan saya namai tk 
Text field hasil penentuan saya namai hasil
Ketikkan source code berikut pada fungsi button Penentuan Beasiswa : 

Baris pertama dan kedua adalah pengambilan data inputan IPK dan TK untuk diklusterkan dan diklasifikasi kelasnya. Baris
keenam adalah pengambilan pusat titik clustering, yang telah dihasilkan dari langkah­langkah sebelumnya. Baris ketujuh
terdapat  variabel  pusat1  sebagai  kelas  klasifikasi  penerima  beasiswa,  sedangkan  beris  kedelapan  sebagai  kelas  tidak
diterimanya beasiswa. Namun, bisa saja terjadi sebaliknya antara baris ketujuh dan kedelapan. 
ujiA  dan  ujiB  adalah  variabel  untuk  menentukan  jarak  terdekat  terhadap  kelas  klasifikasi,  semakin  kecil  nilainya  maka
semakin dekat jaraknya. 
Hasil running program : 

Ketika program di uji coba untuk penentuan beasiswa

Mengapa  program  memutuskan  bahwa  data  input  layak  mendapatkan  kelas  "mendapatkan  Beasiswa"?  Coba  kita  lihat

jarak masing­masing kelas. 

ujiA adalah variabel untuk kelas "Mendapatkan Beasiswa", sedangkan variabel ujiB tidak. Nyatanya, nilai jarak ujiA adalah
lebih  kecil  dibanding  ujiB,  ini  dapa  diartikan  bahwa  klasifikasi  penentuan  data  input  lebih  dominan  terhadap  ujiA,
yakni "Mendapatkan Beasiswa". 
Akhir  kata,  Semoga  uraian  singkat  ini  memberikan  manfaat  bagi  teman­teman  yang  sedang  membutuhkan  referensi
belajar. 
Salam Hangat