Anda di halaman 1dari 20

mulkan.ms@gmail.com - http://softscients.blogspot.

com

Implementasi Learning Vector Quantization


Oleh: mulkan.ms@gmail.com Pembahasan mengenai metode pelatihan terbimbing seperti LVQ, Backprogation dan metode pelatihan 12 tidak terbimbing seperti kohonen, K 10 Means sudah sangat luas diimplementasikan untuk 8 memecahkan permasalahan yang bersifat non linear. Pada kesempatan 6 kali ini, penulis mencoba untuk 4 melakukan implementasi LVQ learning vector quantization. LVQ 2 ternyata sangat cocok sekali melakukan klasifikasi kelas. Ada 0 0 2 4 6 8 10 12 14 banyak kasus sederhana yang bisa dipecahkan oleh LVQ yaitu logika boolean mengenai AND dan OR, ataupun permasalahan lainnya. Penulis menyajikan sampai dengan 5 kasus yaitu 1. Kasus logika OR 2. Kasus logika AND 3. Kasus 2 parameter dengan 2 kelas 4. Kasus 2 paramater dengan 3 kelas sekaligus 5. Kasus 2 paramater dengan 4 kelas sekaligus Tiap kasus ditampilkan dalam sebuah tabel yang terdiri dari 2 paramater dan 1 target, juga dilengkapi dengan ilustrasi scatter yang menandakan bahwa masingmasing kasus bersifat non linear. Ada pengecualian dalam logika boolean yaitu 1 diganti dengan 2 dan 0 diganti dengan 1, jadi target LVQ harus mempunyai nilai minimal 1 bukan 0.
14

mulkan.ms@gmail.com - http://softscients.blogspot.com

Kasus 1 - Logika OR
Param X 1 1 0 0 1 = merah 2 = hijau
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

Param Y 1 0 1 0

target 1 2 2 2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

mulkan.ms@gmail.com - http://softscients.blogspot.com

Kasus 2 - logika AND


Param X 1 1 0 0 Param Y 1 0 1 0 target 2 1 1 1

1 = merah 2 = hijau
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

mulkan.ms@gmail.com - http://softscients.blogspot.com

Kasus 3
Param X 1 3 1 6 8 9 Param Y 3 4 6 1 3 1 target 1 1 1 2 2 2

1 = lingkaran 2 = bintang
6 5.5 5 4.5 4 3.5 3 2.5 2 1.5 1

mulkan.ms@gmail.com - http://softscients.blogspot.com

Kasus 4
Param X 7 8 9 8 8 1 3 5 3 2 3 4 3 3 Param Y 8 8 8 7 9 3 1 3 5 13 13 13 12 14 target 1 1 1 1 1 2 2 2 2 3 3 3 3 3

1 = lingkaran 2 = bintang 3 = asterik


14

12

10

mulkan.ms@gmail.com - http://softscients.blogspot.com

Kasus 5
Param X 7 8 9 8 8 1 3 5 3 2 3 4 3 3 12 13 14 13 13 Param Y 8 8 8 7 9 3 1 3 5 13 13 13 12 14 3 3 3 2 4 target 1 1 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 4

1 2 3 4

= = = =

bintang lingkaran asterik plus

mulkan.ms@gmail.com - http://softscients.blogspot.com

14

12

10

0 0

10

12

14

Tahap Implementasi
Penulis menggunakan tools java sebagai bahasa utama untuk implementasi metode LVQ, berikut tampilan utama dari aplikasi nya, ada 2 pilihan yaitu Training dan Testing.

mulkan.ms@gmail.com - http://softscients.blogspot.com Cara menggunakan aplikasi proses training yaitu aplikasi akan tampil dengan beragam tombol dan textarea yang siap diisi.

Memasukan Matrix input dan Target User bisa menggunakan 2 pilihan untuk memasukan matrix ke textarea yaitu 1. Copy paste matrix langsung ke TextArea, sebaiknya menggunakan excel untuk menyiapkan matrix input dan target agar mempermudah karena masingmasing kolom dipisahkan dengan Tab . Misalkan kita mempunyai matrix input dan target kasus AND. Ingat, pada kolom terakhir merupakan target dan harus mempunyai minimal angka 1 seperti berikut Merah kolom input Hitam kolom target

Jadi tidak menggunakan nilai target sembarangan, misalkan 1; 4 ;3 itu tidak bisa, harus urut mulai dari 1;2;3 dan seterus nya Gunakan Ctr+C dan Ctr+V untuk melakukan copy paste

mulkan.ms@gmail.com - http://softscients.blogspot.com

2. Atau pilih Tombol Cari File jika anda mempunyai file dalam bentuk *.txt, ingat pisahkan masing - masing kolom dengan Tab bukan dengan blank space

Memasukan Bobot Untuk mempermudah memasukan Matrix Data Bobot, gunakan tombol Isi Bobot Acak untuk mengisi textArea nya, atau mengisi sendiri dengan pemisah kolom menggunakan tab

Pengisian bobot harus mengikuti kaidah LVQ, yaitu jumlah baris disesuaikan dengan jumlah kelas dan jumlah kolom disesuaikan dengan jumlah paramater yang digunakan, jadi bila anda belum tahu, silahkan gunakan tombol Isi Bobot Acak Biarkan nilai Maksimal Epoch, momentum, dan Minimal Target default.

mulkan.ms@gmail.com - http://softscients.blogspot.com Proses training Proses training bisa dimulai dengan tombol Mulai, Henti, dan Simpan Model. Proses training akan berhenti secara otomatis jika mencapai 2 kondisi yaitu 1. Epoch telah menjadi maksimal atau 2. Nilai minimal error telah tercapai Berikut contoh proses training logika AND yang pada epoch ke 11 sudah mencapai nilai error 0 sehingga proses training selesai

Setelah selesai, gunakan tombol Simpan Model untuk menyimpan bobot LVQ kedalam file bernama lvq_model.model

yang menandakan bahwa model telah disimpan kedalam file pada current directory dengan nama lvq_model.model dan siap digunakan untuk proses testing.

mulkan.ms@gmail.com - http://softscients.blogspot.com Proses Testing Setelah proses training selesai, bisa dilanjut dengan proses testing, pilihkan Tombol Load Model untuk load data yang diperlukan Dan gunakan tombol Mulai untuk melakukan klasifikasi

Anda pun bisa mengubah nilai Matrid Data Input dengan data yang lainnya.

mulkan.ms@gmail.com - http://softscients.blogspot.com

Terlihat bahwa LVQ mampu melakukan logika AND

mulkan.ms@gmail.com - http://softscients.blogspot.com Untuk kasus-kasus yang lain, anda bisa mencoba sendiri. Penulis memfokuskan untuk kasus 4 dan 5

Percobaan Untuk Kasus 4

Lihatlan plot grafik (pada tabel kasus ) yang menghasilkan berikut terlihat bahwa pola ke 3 kelas tidak bersifat linear
14

12

10

Apakah LVQ mampu melakukan klasifikasi dengan benar?? Berikut hasil tampilan dari proses training kasus 4

mulkan.ms@gmail.com - http://softscients.blogspot.com

Bobot awal 0.3439542194361468 0.18405260185602734 0.4044513032156585 0.6549986111204149 0.6646836180084927 0.797099670015233 training berjalan.... epoch ke 0 error 3.7416573867739413 epoch ke 1 error 3.1622776601683795 epoch ke 2 error 2.23606797749979 epoch ke 3 error 0.0 Target Hasil 1 1 1 1

mulkan.ms@gmail.com - http://softscients.blogspot.com 1 2 2 2 2 3 3 3 3 3 Bobot Akhir 0.5701167082433011 0.2265572962515039 0.3129570790697895 0.15249597642218365 0.3807835347820572 0.9308186521341207 Kesimpulan Bahwa pada kasus 4 dengan bobot awal seperti diatas, LVQ mampu melakukan klasifikasi dengan benar yang ditandai dengan error 0

Hasil Pelatihan Kasus 5


Mari kita coba untuk kasus 5 dengan 4 kelas yang berbeda, tentu menunjukan data yang bersifat nonlinear!

14

12

10

0 0

10

12

14

mulkan.ms@gmail.com - http://softscients.blogspot.com Berikut tampilan proses training dengan matrix bobot nya

Menghasilkan pada epoch ke 4 sudah mampu mencapai nilai error 0, jika menggunakan bobot seperti berikut Bobot awal 1 1 0 0 0 1 0 0 Hasil nya training berjalan.... epoch ke 0 error 5.0 epoch ke 1 error 4.898979485566356 epoch ke 2 error 6.4031242374328485 epoch ke 3 error 3.605551275463989 epoch ke 4 error 0.0 Target Hasil 1 1

mulkan.ms@gmail.com - http://softscients.blogspot.com 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 4 Bobot Akhir 0.4623596690923487 0.02261381029741539 0.12740508277256746 0.5935464758417582

1.001069520336861 0.13785951183415232 0.9480024441829541 -0.018358685088688494

Ternyata LVQ mampu melakukan dengan baik, mari kita coba dengan bobot yang lainnya

mulkan.ms@gmail.com - http://softscients.blogspot.com Penulis mencoba menggunakan bobot random yang lain

Ternyata sampai epoch ke 1000 pun belum bisa mencapai error 0 hanya sampai error 3 ternyata Bobot sangat mempengaruhi sekali, dan pada kasus 5 tersebut ada 4 kelas sehingga kita harus membuat bobot tersebut berbeda satu dengan yang lainya, salah satu cara terbaik yaitu gunakan random trial and error seperti berikut

mulkan.ms@gmail.com - http://softscients.blogspot.com

Dengan nilai bobot awal yaitu 0.4200654142286625 0.5185470125022452 0.7301511835877621 0.21164119579844265 0.332179646377042 0.9213051800411797 0.5346542833482517 0.6506632967089748 Yang dihasilkan dari random, jadi harus trial and error Ternyata bobot tersebut cukup ampuh! Epoch ke 0 pun langsung menjadi nilai error 0, jika suda mencapai error 0, silahkan untuk Simpan Model sehingga model tersebut dapat digunakan kembali jika diperlukan pada proses testing. Seperti berikut

mulkan.ms@gmail.com - http://softscients.blogspot.com

Hasil diatas sudah tepat seperti berikut


Param X 7 Param Y 8 target 1

Kesimpulan yang didapat 1. LVQ mampu melakukan klasifikasi kelas 2. Hasil target kelas LVQ sangat dipengaruhi oleh bobot yang digunakan