Fuzzy C-Means Clustering dan Implementasinya Untuk Penentuan Beasiswa Menggunakan Matlab

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








8 Responses to "Fuzzy C-Means Clustering dan Implementasinya Untuk Penentuan Beasiswa Menggunakan Matlab"

  1. terima kasih sharingnya, sangat membantu.
    Mas Charis masih di malang? jika iya mungkin saya bisa ketemu utk belajar ttg matlab lebih lanjut? jika berkenan, minta tolong email saya ya mas, dimas.toscanni@gmail.com
    Terima Kasih banyak sebelumnya...

    ReplyDelete
    Replies
    1. Terima kasih banyak mas dimas atas komentarnya. Saya masih aktif kuliah di UIN Maliki Malang. Insya Allah akan saya hubungi lewat email.

      Delete
  2. up gan... lanjutkan karya2 nya :)

    ReplyDelete
  3. boleh sharing lebih dalam mengenai FCM mas,? kalo boleh balas di email saya ya mas.. masbudeng27@gmail.com saya juga stay d malang mas.
    triimss..

    ReplyDelete
  4. assalamualaikum, mas kalo misalkan data clustering nya itu gambar gimana ya mas? gambar yang sudah di threshold.

    ReplyDelete
  5. boleh minta email ga kak? buat sharing matlab 😊

    ReplyDelete

Terima Kasih Telah Berkunjung, Silakan Berkomentar...
Kritik dan Saran Teman-Teman Sangat Memotivasi Saya (^_^)

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel