Aplikasi Learning Vector Quantization

20
[email protected] - http://softscients.blogspot.com Implementasi Learning Vector Quantization Oleh: [email protected] Pembahasan mengenai metode pelatihan terbimbing seperti LVQ, Backprogation dan metode pelatihan tidak terbimbing seperti kohonen, K Means sudah sangat luas diimplementasikan untuk memecahkan permasalahan yang bersifat non linear. Pada kesempatan kali ini, penulis mencoba untuk melakukan implementasi LVQ - learning vector quantization. LVQ ternyata sangat cocok sekali melakukan klasifikasi kelas. Ada 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 masing- masing 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. 0 2 4 6 8 10 12 14 0 2 4 6 8 10 12 14

description

Aplikasi Learning Vector Quantization

Transcript of Aplikasi Learning Vector Quantization

Page 1: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Implementasi Learning VectorQuantizationOleh: [email protected]

Pembahasan mengenai metodepelatihan terbimbing seperti LVQ,Backprogation dan metode pelatihantidak terbimbing seperti kohonen, KMeans sudah sangat luasdiimplementasikan untukmemecahkan permasalahan yangbersifat non linear. Pada kesempatankali ini, penulis mencoba untukmelakukan implementasi LVQ -learning vector quantization. LVQternyata sangat cocok sekalimelakukan klasifikasi kelas. Adabanyak kasus sederhana yang bisadipecahkan oleh LVQ yaitu logika

boolean mengenai AND dan OR, ataupun permasalahan lainnya.Penulis menyajikan sampai dengan 5 kasus yaitu

1. Kasus logika OR2. Kasus logika AND3. Kasus 2 parameter dengan 2 kelas4. Kasus 2 paramater dengan 3 kelas sekaligus5. Kasus 2 paramater dengan 4 kelas sekaligus

Tiap kasus ditampilkan dalam sebuah tabel yang terdiri dari 2 paramater dan 1target, juga dilengkapi dengan ilustrasi scatter yang menandakan bahwa masing-masing kasus bersifat non linear. Ada pengecualian dalam logika boolean yaitu 1diganti dengan 2 dan 0 diganti dengan 1, jadi target LVQ harus mempunyai nilaiminimal 1 bukan 0.

0 2 4 6 8 10 12 140

2

4

6

8

10

12

14

Page 2: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Kasus 1 - Logika ORParam X Param Y target

1 1 11 0 20 1 20 0 2

1 = merah2 = hijau

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Page 3: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Kasus 2 - logika ANDParam X Param Y target

1 1 21 0 10 1 10 0 1

1 = merah2 = hijau

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Page 4: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Kasus 3Param X Param Y target

1 3 13 4 11 6 16 1 28 3 29 1 2

1 = lingkaran2 = bintang

1 2 3 4 5 6 7 8 91

1.5

2

2.5

3

3.5

4

4.5

5

5.5

6

Page 5: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Kasus 4Param X Param Y target

7 8 18 8 19 8 18 7 18 9 11 3 23 1 25 3 23 5 22 13 33 13 34 13 33 12 33 14 3

1 = lingkaran2 = bintang3 = asterik

1 2 3 4 5 6 7 8 90

2

4

6

8

10

12

14

Page 6: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Kasus 5Param X Param Y target

7 8 1

8 8 1

9 8 18 7 1

8 9 11 3 23 1 2

5 3 2

3 5 22 13 3

3 13 34 13 33 12 3

3 14 3

12 3 413 3 4

14 3 413 2 413 4 4

1 = bintang2 = lingkaran3 = asterik4 = plus

Page 7: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Tahap ImplementasiPenulis menggunakan tools java sebagai bahasa utama untuk implementasi metodeLVQ, berikut tampilan utama dari aplikasi nya, ada 2 pilihan yaitu Training danTesting.

0 2 4 6 8 10 12 140

2

4

6

8

10

12

14

Page 8: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Cara menggunakan aplikasi proses training yaitu aplikasi akan tampil denganberagam tombol dan textarea yang siap diisi.

Memasukan Matrix input dan TargetUser bisa menggunakan 2 pilihan untuk memasukan matrix ke textarea yaitu

1. Copy paste matrix langsung ke TextArea, sebaiknya menggunakan excel untukmenyiapkan matrix input dan target agar mempermudah karena masing-masing kolom dipisahkan dengan Tab. Misalkan kita mempunyai matrix inputdan target kasus AND. Ingat, pada kolom terakhir merupakan target dan harusmempunyai minimal angka 1 seperti berikutMerah kolom inputHitam kolom target

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

Page 9: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

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

Memasukan BobotUntuk mempermudah memasukan Matrix Data Bobot, gunakan tombol Isi BobotAcak untuk mengisi textArea nya, atau mengisi sendiri dengan pemisah kolommenggunakan tab

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

Page 10: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Proses trainingProses training bisa dimulai dengan tombol Mulai, Henti, dan Simpan Model. Prosestraining akan berhenti secara otomatis jika mencapai 2 kondisi yaitu

1. Epoch telah menjadi maksimal atau2. Nilai minimal error telah tercapai

Berikut contoh proses training logika AND yang pada epoch ke 11 sudah mencapainilai error 0 sehingga proses training selesai

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

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

Page 11: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Proses TestingSetelah proses training selesai, bisa dilanjut dengan proses testing, pilihkan TombolLoad Model untuk load data yang diperlukanDan gunakan tombol Mulai untuk melakukan klasifikasi

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

Page 12: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Terlihat bahwa LVQ mampu melakukan logika AND

Page 13: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Untuk kasus-kasus yang lain, anda bisa mencoba sendiri. Penulis memfokuskanuntuk kasus 4 dan 5Percobaan Untuk Kasus 4Lihatlan plot grafik (pada tabel kasus ) yang menghasilkan berikut terlihat bahwa polake 3 kelas tidak bersifat linear

Apakah LVQ mampu melakukan klasifikasi dengan benar??

Berikut hasil tampilan dari proses training kasus 4

1 2 3 4 5 6 7 8 90

2

4

6

8

10

12

14

Page 14: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Bobot awal0.3439542194361468 0.184052601856027340.4044513032156585 0.65499861112041490.6646836180084927 0.797099670015233training berjalan....epoch ke 0 error 3.7416573867739413epoch ke 1 error 3.1622776601683795epoch ke 2 error 2.23606797749979epoch ke 3 error 0.0Target Hasil1111

Page 15: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

1222233333Bobot Akhir0.5701167082433011 0.22655729625150390.3129570790697895 0.152495976422183650.3807835347820572 0.9308186521341207KesimpulanBahwa pada kasus 4 dengan bobot awal seperti diatas, LVQ mampu melakukanklasifikasi dengan benar yang ditandai dengan error 0

Hasil Pelatihan Kasus 5Mari kita coba untuk kasus 5 dengan 4 kelas yang berbeda, tentu menunjukan datayang bersifat nonlinear!

0 2 4 6 8 10 12 140

2

4

6

8

10

12

14

Page 16: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Berikut tampilan proses training dengan matrix bobot nya

Menghasilkan pada epoch ke 4 sudah mampu mencapai nilai error 0, jikamenggunakan bobot seperti berikut

Bobot awal1 10 00 10 0Hasil nyatraining berjalan....epoch ke 0 error 5.0epoch ke 1 error 4.898979485566356epoch ke 2 error 6.4031242374328485epoch ke 3 error 3.605551275463989epoch ke 4 error 0.0Target Hasil11

Page 17: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

11122223333344444Bobot Akhir0.4623596690923487 1.0010695203368610.02261381029741539 0.137859511834152320.12740508277256746 0.94800244418295410.5935464758417582 -0.018358685088688494

Ternyata LVQ mampu melakukan dengan baik, mari kita coba dengan bobot yanglainnya

Page 18: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Penulis mencoba menggunakan bobot random yang lain

Ternyata sampai epoch ke 1000 pun belum bisa mencapai error 0 hanyasampai error 3

ternyata Bobot sangat mempengaruhi sekali, dan pada kasus 5 tersebut ada 4 kelassehingga kita harus membuat bobot tersebut berbeda satu dengan yang lainya, salahsatu cara terbaik yaitu gunakan random trial and error seperti berikut

Page 19: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Dengan nilai bobot awal yaitu0.4200654142286625 0.51854701250224520.7301511835877621 0.211641195798442650.332179646377042 0.92130518004117970.5346542833482517 0.6506632967089748Yang dihasilkan dari random, jadi harus trial and errorTernyata bobot tersebut cukup ampuh! Epoch ke 0 pun langsung menjadi nilai error0, jika suda mencapai error 0, silahkan untuk Simpan Model sehingga modeltersebut dapat digunakan kembali jika diperlukan pada proses testing.Seperti berikut

Page 20: Aplikasi Learning Vector Quantization

[email protected] - http://softscients.blogspot.com

Hasil diatas sudah tepat seperti berikut

Param X Param Y target

7 8 1

Kesimpulan yang didapat1. LVQ mampu melakukan klasifikasi kelas2. Hasil target kelas LVQ sangat dipengaruhi oleh bobot yang digunakan