klasifikasi lvq
DESCRIPTION
LVQ untuk teknik klasifikasiTRANSCRIPT
LVQ (learning vector quantization)Komputasi nonlinear - kecerdasan buatan
Oleh: [email protected]://softscients.blogspot.com
Bidang kecerdasan buatan telah mengenalkan algoritma LVQ yang merupakanalgoritma untuk melakukan teknik klasifikasi yang terbimbing (untuk versi tidakterbimbing yaitu kohonen). Lain kata LVQ melakukan klasifikasi input secaraberkelompok kedalam kelas yang sudah didefinisikan melalui jaringan yang telahdilatih yaitu mendapatkan n input dan mengelompokan kedalam m output. Contohkasus dari matematika nonlinear yaitu algoritma Boolean OR
Param a Param b Result1 1 10 0 00 1 11 0 1
Penulis menggunakan java sebagai toolsnya (bila anda ingin mencoba menggunakannya silahkan download JImage library di http://softscients.blogspot.com versiJImageV.11.03.13) atau kirim email ke [email protected]. Berikut potongankode nya.
20 /* demo kasus LVQ untuk logica booelan21 */2223 LVQ lvq = new LVQ(); //instance class LVQ24 //sampel25 double [][]sampel =new double[][]{26 {1,1},27 {0,0},28 {0,1},29 {1,0}3031 };32 int [][]target=new int [][]{33 {2}, //artinya true34 {1}, //artinya false35 {2},36 {2}37 };38 double [][]bobot=new double[][]{39 {Math.random(),Math.random()},40 {Math.random(),Math.random()}41 };42 lvq.setSampel(sampel);43 lvq.setTarget(target);44 lvq.setBobot(bobot);4546 lvq.setAlfa(0.1); //nilai learning rate
47 lvq.setDecAlfa(0.001);// decreasing rate48 lvq.setMakEpoch(2000); //maksimal epoch49 //lvq.setMomentum(true);50 System.out.println("sample awal");51 util.Print.print(lvq.getSampel());52 System.out.println("bobot awal");53 util.Print.print(lvq.getBobot());54 System.out.println("target awal");55 util.Print.print(lvq.getTarget());56 System.out.println("======== training ===========");57 lvq.processTrain();58 System.out.println("======== testing =============");59 lvq.processTest(lvq.getSampel(), lvq.getBobot());60 System.out.println("bobot akhir");61 util.Print.print(lvq.getBobot());62 System.out.println("target akhir");63 util.Print.print(lvq.getHasil());64 System.out.println("epoch terakhir nya");65 System.out.println(lvq.getEpoch());
Hasilnyasample awal1.0 1.00.0 0.00.0 1.01.0 0.0
bobot awal0.4225259882188299 0.16656145882125950.4164443699236845 0.5338319989262157
target awal2122
======== training =================== testing =============bobot akhir0.2151177210532752 0.163246885790716450.4361291511069294 0.6941471744954901
target akhir2122
epoch terakhir nya2
Terlihat bahwa target awal == target akhir dicapai dalam 2 epoch saja!
Kasus lainTidak hanya kasus diatas saja yang bisa ditangani oleh LVQ, berikut adalah salahsatu kasus yakni menggunakan 4 paramater sekaligus!
*note:Tentunya catatan kecil diatas belum membahas faktor -faktor apa sajakah yangmempercepat dan ketepatan hasil dari proses training? Bila anda masih tertarik,silahkan untuk diskusi ke [email protected] atauhttp://softscients.blogspot.com. Selain itu Source code diatas telah ditranslatekedalam bahasa C#, C/C++, dan Matlab sehingga memudahkan bagi u ser bila inginmengembangkan kedalam bahasa yang dikuasai tersebut.