Support Vector Machine Pada Kelas Jamak Untuk Penjurusan SMA Menggunakan Matlab
Table of Contents
Sekarang kita akan melanjutkan pembahasan mengenai Support Vector Machice yang terjadi pada kelas jamak, setelah pembahasan sebelumnya mengupas banyak hal tentang SVM kelas biner. Dikatakan sebagai kelas jamak karena kelas yang diklasifikasikan lebih dari kelas biner (2 kelas). Contoh kelas jamak adalah klasifikasi untuk penjurusan SMA. Kelas yang ditetapkan adalah Jurusan IPA, Jurusan IPS dan Jurusan Bahasa. Maka, untuk mengklasifikasikan kelas jamak, SVM yang digunakan adalah jenis SVM kelas jamak. Apakah caranya berbeda dengan cara klasifikasi SVM kelas biner? Secara garis besar caranya sama, namun beda konsep. SVM kelas jamak membutuhkan proses training yang lebih banyak dan keterkaitan antara masing-masing kelas.
Gambar dibawah ini mensimulasikan bagaimana seluruh kelas dari 3 kelas klasifikasi memiliki keterikatan satu sama lain.
Mengapa ketiga kelas perlu dikaitkan satu sama lain? Oke, saya tidak menjawab secara langsung, biarlah teman-teman sendiri yang menjawabnya nanti, setelah tahu bagaimana prosesnya diterapkan pada matlab.
Langkah pertama adalah mempersiapkan data pelatihan. Data sampel yang saya miliki adalah seperti ini :
Proses SVM kelas jamak bukan membuat proses SVM sekali jalan untuk 3 kelas. Namun kita harus buat satu per satu. Proses SVM kelas jamak akan kita pecah sebagai berikut :
- Membuat persamaan svmStruktur1, yaitu perbandingan antara kelas IPA dan IPS.
- Membuat persamaan svmStruktur2, yaitu perbandingan antara kelas IPA dan Bahasa
- Membuat persamaan svmStruktur3, yaitu perbandingan antara kelas IPS dan Bahasa
Maka, proses SVM kelas jamak hampir serupa dengan proses decision tree, kita bandingkan dulu misalnya nilai IPA dan nilai IPS. Pemenang IPA dan IPS akan dibandingkan dengan nilai Bahasa. Hasil akhir akan menghasilkan kelas pemenang, apakah IPA, IPS atau Bahasa. Simpel bukan?
Membuat svmStruktur1, kelas IPA dan kelas IPS
Berdasarkan data pada excel diatas, pecah datanya menjadi dua file notepad, data nilai IPA dan IPS serta target pelatihan IPA dan IPS. Seperti ini :
Data IPA dan IPS |
Target IPA dan IPS |
Target adalah representasi pemenang dari klasifikasi data IPA dan IPS. Sistem pelatihan tahap pertama adalah melatih sistem agar dapat mengambil keputusan siapa yang layak menjadi pemenang jika nilai IPA dan IPS disandingkan. Secara teori, pemenang dari klasifikasi IPA dan IPS adalah yang memiliki bobot nilai paling besar. Jika bobot nilai sama, maka diambilkan pemenang IPA dengan alasan nilai IPA sulit untuk diperoleh. Untuk data nilai IPA dan IPS saya simpan dalam sebuah file dengan nama D_IPAIPS.dat, untuk Target saya simpan dengan T_IPAIPS.dat.
Berikutnya adalah membuat svmStruktur1 pada Command Window Matlab dengan instruksi sebagai berikut :
Load data nilai IPA dan IPS beserta targetnya |
Load data nilai IPA dan IPS beserta targetnya |
svmStruktur1 untuk training antara IPA dan IPS |
Membuat svmStruktur2, kelas IPA dan kelas Bahasa
Langkah kedua ini berlaku apabila svmStruktur1 diatas menghasilkan klasifikasi yang dimenangkan oleh kelas IPA, maka kelas IPA sekarang harus dibandingkan dengan kelas Bahasa. Hasil dari svmStruktur2 maupun svmStruktur3 nantinya adalah hasil berupa klasifikasi final.
Saya kembali membuat data nilai IPA dan Bahasa lengkap beserta targetnya. Saya buat dalam bentuk notepad berikut :
Data nilai IPA dan Bahasa |
Target klasifikasi IPA dan Bahasa |
Kedua file diatas tetap mengacu kepada file utama yaitu file excel. Untuk membuat targetnya disesuaikan dengan logika yang sama seperti pembuatan target svmStruktur1. Pemenang antara IPA dan Bahasa adalah yang memiliki nilai paling tinggi antara keduanya. Jika keduanya berbobot sama maka dipilihlah IPA dengan pertimbangan penilaian IPA yang sulit. Simpan keduanya dengan ekstensi .dat
Sekarang kita lanjutkan proses training pada Command Window Matlab :
Load file Data dan Target untuk IPA dan Bahasa |
svmStruktur2 untuk training antara nilai IPA dan Bahasa |
Hasil Training antara IPA dan Bahasa |
Membuat svmStruktur3, kelas IPS dan kelas Bahasa
Setelah svmStruktur1, svmStruktur2, svmStruktur3 telah dibuat, berikutnya simpan keseluruhan proses menjadi sebuah file bernama kelassvm.mat. Caranya dengan mengetikkan :
save kelassvm.mat
Tahap ketiga ini digunakan manakala pada klasifikasi svmStruktur1 dimenangkan oleh kelas IPS. Maka, sekarang kelas IPS harus disejajarkan dengan kelas bahasa untuk memperoleh kelas terbaik. Saya buat data untuk IPS dan Bahasa beserta targetnya pada dua file notepad berikut :
Data nilai IPS dan Bahasa |
Target dari klasifikasi IPS dan Bahasa |
Simpan dengan ekstensi .dat, untuk selanjutnya panggil pada Command Window Matlab seperti pada langkah-langkah sebelumnya, dengan cara :
load D_IPSBAHASA.dat
load T_IPSBAHASA.dat
Setelah itu, ketikkan kode berikut untuk melakukan proses training SVM antara kelas IPS dan Bahasa
Proses Training SVM IPS dan Bahasa |
Hasil Training IPS dan Bahasa |
save kelassvm.mat
Pada command window matlab. File tersebut berperan penting untuk digunakan sebagai proses klasifikasi data testing.
Sekarang, kita buat aplikasi program untuk testing. Buat project M-File pada matlab, saya menamakannya klasifikasi. Ketikkan kode berikut untuk membuat aplikasi penentuan penjurusan SMA menggunakan metode SVM :
Setelah ngoding selesai, lanjutkan dengan uji program pada command window, seperti ini :
Uji Coba Aplikasi Penjurusan SMA |
Oke fix, seluruh proses telah kita lalui hingga pengujian program. Dapat saya simpulkan bahwa metode SVM telah berjalan dengan baik untuk proses klasifikasi penjurusan SMA pada kelas jamak. Sayangnya, program aplikasi kita diatas masih berbasis teks. Maka, agar terlihat lebih keren, kembangkan aplikasi penjurusan SMA diatas menjadi bentuk GUI. Seperti punya saya berikut :
Aplikasi Penjurusan SMA menggunakan metode SVM berbasis GUI |
Jika teman-teman membutuhkan referensi yang lebih detail dan komprehensif, saya berikan project saya untuk dipelajari. Semoga ulasan saya diatas memberikan manfaat bagi teman-teman sekalian.
Salam Hangat
cuman svm biner di tambah decision tree , klo svm multiclass harusnya dipetakan semua dulu baru di cari garis yg tepat pemisahnya bisa pake OAA ato OAO , bukan satu2 di atas
http://asi.insa-rouen.fr/enseignants/~arakoto/toolbox/
tutorialnya mas
http://asi.insa-rouen.fr/enseignants/~scanu/user_guide_version_2_28_merged.pdf
makasih banyak bro
0,104594598 0,565065361
0,268140941 0,695908871
0,123792889 0,561219
0,6806155 0,607671203
0,337774442 0,652791974
0,617838532 0,794017968
0,549619643 0,526816935
0,613984439 0,426932595
1 0,428062295
0 0
0,766863461 1
0,002381743 0,658494271