Support Vector Machine Pada Kelas Jamak Untuk Penjurusan SMA Menggunakan Matlab

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 : 
  1. Membuat persamaan svmStruktur1, yaitu perbandingan antara kelas IPA dan IPS. 
  2. Membuat persamaan svmStruktur2, yaitu perbandingan antara kelas IPA dan Bahasa
  3. 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

Hasil 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


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
Setelah svmStruktur1, svmStruktur2, svmStruktur3 telah dibuat, berikutnya simpan keseluruhan proses menjadi sebuah file bernama kelassvm.mat. Caranya dengan mengetikkan :

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 















10 Responses to "Support Vector Machine Pada Kelas Jamak Untuk Penjurusan SMA Menggunakan Matlab"

  1. Coba library dari luar mas , SVM KM atau LIBsvm yang mendukung one against all atau one against one ada berbagai kernel

    ReplyDelete
  2. kok saya gagal paham mas, kok itu kayanya bukan svm multiclass,
    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

    ReplyDelete
    Replies
    1. Oke, makasih banyak mas atas masukannya. Saya akan pelajari lagi lebih lanjut, boleh saya meminta referensi untuk SVM KM dan OAA, OAO ......

      Delete
  3. ini mas referensi nya

    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

    ReplyDelete
  4. Mau tanya mas, kalau data trainingnya seperti ini bagaimana yah ? saya coba error aja

    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

    ReplyDelete
  5. mas saya mau nanya itu kan yang contoh diatas datase/data trainingnya berupa angka semua, nah bagaimana kalau data set nya berupa huruf dan angka? terimakasi mas

    ReplyDelete
  6. Saya udah mencoba tapi kok muncul error dan ada kalimat must contains method SMO

    ReplyDelete
  7. Mas boleh dicontohkan perhitungan manualnya? Saya sedang sangat membutuhkan contoh perhitungan manual svm multiclass..

    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