Fuzzy C Means Clustering dan Implementasinya Untuk Penentuan Beasiswa Menggunakan Matlab My Scribbling Blog
Fuzzy CMeans 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 KNearest
Neighbourhood sebagai bentuk pengklusteran kasar. Sekarang, saatnya beralih
menuju pengklusteran halus, yang dalam hal ini dimotori oleh metode keren Fuzzy
CMeans 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 CMeans Clustering membutuhkan pelatihan untuk memperoleh matriks derajat keanggotaan yang nantinya
digunakan sebagai basis klasifikasi dan untuk mengetahui pusat klusternya. Berbeda dengan kNN 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 berbelitbelit membahas teoremanya.
Jadi, silakan temanteman 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 temanteman 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 komponenkomponen 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 langkahlangkah 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 masingmasing 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 temanteman yang sedang membutuhkan referensi
belajar.
Salam Hangat
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 KNearest
Neighbourhood sebagai bentuk pengklusteran kasar. Sekarang, saatnya beralih
menuju pengklusteran halus, yang dalam hal ini dimotori oleh metode keren Fuzzy
CMeans 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 CMeans Clustering membutuhkan pelatihan untuk memperoleh matriks derajat keanggotaan yang nantinya
digunakan sebagai basis klasifikasi dan untuk mengetahui pusat klusternya. Berbeda dengan kNN 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 berbelitbelit membahas teoremanya.
Jadi, silakan temanteman 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 temanteman 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 komponenkomponen 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 langkahlangkah 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 masingmasing 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 temanteman yang sedang membutuhkan referensi
belajar.
Salam Hangat