Langsung ke konten utama

Contoh Perhitungan Algoritma Learning Vector Quantization

Melanjutkan tulisan saya tentang algoritma Learning Vector Quantization yang lalu, kali ini saya akan melanjutkan dengan contoh perhitungan manual. Berikut ini contoh data yang akan kita hitung.

No
X1

X2

X3

X4

target
1
0
1
1
0
0
2
0
0
1
1
1
3
1
1
1
1
0
4
1
0
0
1
1

pada contoh di atas, saya menggunakan 4 data sebagai data training beserta target yang bertujuan untuk mendapatkan bobot yang akan digunakan pada proses klasifikasi. Bobot awal adalah { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1.

Pelatihan

Iterasi ke 1

1. Data ke 1 { 0, 1, 1, 0} dengan target 0, bobot = {{ 1, 1, 1, 0},{ 1, 0, 1, 1}}
     - menghitung bobot untuk masing masing output : 
        kelas 0 = sqrt(((0-1)^2)+((1-1)^2)+((1-1)^2)+((0-0)^2)) = 1
        kelas 1 = sqrt(((0-1)^2)+((1-0)^2)+((1-1)^2)+((0-1)^2)) = 1.7320508075689
     - menentukan kelas pemenang : 
       output = min(kelas 0, kelas 1) =  kelas 0
     - update bobot : 
       karena target 0 sama dengan output 0, maka update bobot : 
       W11 = 1 + (0.05*(0 - 1)) = 0.95
       W12 = 1 + (0.05*(1 - 1)) = 1
       W13 = 1 + (0.05*(1 - 1)) = 1
       W14 = 0 + (0.05*(0 - 0)) = 0
     
      maka diperoleh bobot baru = {{ 0.95, 1, 1, 0},{ 1, 0, 1, 1}} untuk digunakan pada perhitungan            data selanjutnya

2. Data ke 2 { 0, 0, 1, 1} dengan target 1, bobot = {{ 0.95, 1, 1, 0},{ 1, 0, 1, 1}}
    - menghitung bobot untuk masing masing output :
        kelas 0 = sqrt(((0-0.95)^2)+((0-1)^2)+((1-1)^2)+((1-0)^2)) = 1.7036725037401
        kelas 1 = sqrt(((0-1)^2)+((0-0)^2)+((1-1)^2)+((1-1)^2)) = 1
     - menentukan kelas pemenang : 
       output = min(kelas 0, kelas 1) =  kelas 1
     - update bobot : 
       karena target 1 sama dengan output 1, maka update bobot : 
       W21 = 1 + (0.05*(0 - 1)) = 0.95
       W22 = 0 + (0.05*(0 - 0)) = 0 
       W23 = 1 + (0.05*(1 - 1)) = 1
       W24 = 1 + (0.05*(1 - 1)) = 1
      
       maka diperoleh bobot baru = {{ 0.95, 1, 1, 0},{ 0.95, 0, 1, 1}} untuk digunakan pada perhitungan data selanjutnya

3. Data ke 3 { 1, 1, 1, 1} dengan target 0, bobot = {{ 0.95, 1, 1, 0},{ 0.95, 0, 1, 1}}
    - menghitung bobot untuk masing masing output :
        kelas 0 = sqrt(((1-0.95)^2)+((1-1)^2)+((1-1)^2)+((1-0)^2)) = 1.001249219725
        kelas 1 = sqrt(((1-0.95)^2)+((1-0)^2)+((1-1)^2)+((1-1)^2)) = 1.001249219725
     - menentukan kelas pemenang : 
       output = min(kelas 0, kelas 1) =  kelas 0, 
       - karena output antara kedua kelas sama besar, bisa dipilih salah satu sebagai output
     - update bobot : 
       karena target 0 sama dengan output 0, maka update bobot : 
       W11 = 0.95 + (0.05*(1 - 0.95)) = 0.9525
       W12 = 1 + (0.05*(1 - 1)) = 1
       W13 = 1 + (0.05*(1 - 1)) = 1
       W14 = 0 + (0.05*(1 - 0)) = 0.05
      
     maka diperoleh bobot baru = {{ 0.9525, 1, 1, 0.05},{ 0.95, 0, 1, 1}} untuk digunakan pada perhitungan data selanjutnya

4. Data ke 4 { 1, 0, 0, 1} dengan target 1, bobot = {{ 0.9525, 1, 1, 0.05},{ 0.95, 0, 1, 1}}
    - menghitung bobot untuk masing masing output :
        kelas 0 = sqrt(((1-0.9525)^2)+((0-1)^2)+((0-1)^2)+((1-0.05)^2)) = 1.7043345475581
        kelas 1 = sqrt(((1-0.95)^2)+((0-0)^2)+((0-1)^2)+((1-1)^2)) = 1.001249219725
     - menentukan kelas pemenang : 
       output = min(kelas 0, kelas 1) =  kelas 1
     - update bobot : 
       karena target 1 sama dengan output 1, maka update bobot : 
       W21 = 0.95 + (0.05*(1 - 0.95)) = 0.9525
       W22 = 0 + (0.05*(0 - 0)) = 0
       W23 = 1 + (0.05*(0 - 1)) = 0.95
       W24 = 1 + (0.05*(1 - 1)) = 1

      maka diperoleh bobot baru = {{ 0.9525, 1, 1, 0.05},{ 0.9525, 0, 0.95, 1}} untuk digunakan pada perhitungan data selanjutnya

- setelah semua data selesai dihitung, update learning rate : 
    learning rate baru = fungsi pembelajaran * learning rate;
                                 = 0.1 * 0.05 = 0.005
karena dalam satu iterasi semua data sudah diklasifikasikan dengan benar, maka iterasi pelatihan bisa dihentikan dan memakai bobot terakhir untuk digunakan dalam proses klasifikasi / prediksi. Jika dalam satu iterasi ada yang outputnya belum tepat, maka dilanjutkan ke iterasi berikutnya sampai dengan data diklasifikasikan dengan benar atau telah mencapai maksimal iterasi yang telah ditentukan.

Klasifikasi / Prediksi

Setelah didapat bobot hasil pelatihan yaitu {{ 0.9525, 1, 1, 0.05},{ 0.9525, 0, 0.95, 1}}, maka kita coba melakukan uji coba klasifikasi terhadap dua data yaitu { 1, 1, 1, 0} dan { 1, 0, 1, 1}.

1. Data ke 1 { 1, 1, 1, 0}

kelas 0 = sqrt(((1-0.9525)^2)+((1-1)^2)+((1-1)^2)+((0-0.05)^2)) = 0.068965571120669
kelas 1 = sqrt(((1-0.9525)^2)+((1-0)^2)+((1-0.95)^2)+((0-1)^2)) = 1.4158941521173
output = kelas 0

2. Data ke 2 { 1, 0, 1, 1}

kelas 0 = sqrt(((1-0.9525)^2)+((0-1)^2)+((1-1)^2)+((1-0.05)^2)) = 1.3801290700511
kelas 1 = sqrt(((1-0.9525)^2)+((0-0)^2)+((1-0.95)^2)+((1-1)^2)) = 0.068965571120669
output = kelas 1

Sekian tulisan saya kali ini, semoga bermanfaat.

Komentar

  1. terima kasih gan sudah berkenan membaca

    BalasHapus
  2. ga paham { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1.

    dapat dari mana?

    BalasHapus
    Balasan
    1. learning rate, fungsi pembelajaran, bobot awal ditentukan sendiri mas di awal, yg kemudian dalam proses pembelajaran akan di update sesuai denga hasil perhitungan

      Hapus
    2. bobot awal itu bisa mengunakan data latih ?

      Hapus
  3. mas mau nanya... jika data latih dalam bentuk penjualan barang, bobot awal yg kita tentuin itu bisa tidak diambil dari nilai max dan min dari data penjualan keseluruhan dalam satu tahun? saya mau memperdiksi jumlah penjualan di tahun depannya... terima kasih

    BalasHapus
    Balasan
    1. bisa mas, bobot awal kan random bisa dr nilai apa saja, nanti disesuaikan di dalam proses pelatihan

      Hapus
    2. jika begitu mas... jika saya menggunakan 2 kalas , kelas 0 (max) kelas 1 (min).. ntar kan pasti hasilnya selalu yg kelas 1 yang akan diperbaharui bobotnya... apakah itu tidak masalah mas? terima kasih

      Hapus
    3. coba dulu gan, kalau nanti yg nilai 0 tidak diperbarui mungkin lebih baik bobot awal didefinisikan sendiri secara acak

      Hapus
    4. baik gan.. terima kasih banyak atas bantuanya

      Hapus
  4. Mas kalau data dari gambar caranya gmna ya mas??

    BalasHapus
    Balasan
    1. kalau dari gambar, gambarnya harus dijadikan angka dulu mbak, jadi diambil nilai dari fitur-fitur tertentu menggunakan image processing. mungkin paper saya berikut bisa membantu mengenai alur ekstraksi fitur gambar

      https://caridokumen.com/download/identifikasi-jenis-mangga-berdasarkan-warna-dan-bentuk-daun-menggunakan-metode-ann-voted-perceptron-_5a45b6dbb7d7bc7b7ad385ca_pdf

      Hapus
  5. Mas, cara menentukan
    { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1.

    ini dapat dari mana? apakah itu acak atau gimana?
    terima kasih

    BalasHapus
  6. itu kan contohnya ada 2 kelas berarti memakai 2 bobot kalau misal ada 3 kelas maka harus memakai 3 bobot begitukah?

    BalasHapus
  7. mas mau nanya, kan saya datanya dari review film nah si data itu udah ngelewatin ke berbagai proses yg akhirnya masuk ke perhitungan TF-IDF, nah hasil akhir yang dari TF-IDF itu kalo mau di masukin ke LVQ nya yang mananya mas?

    sama kalo iterasinya di batasin engga kalo di LVQ mas?

    BalasHapus
    Balasan
    1. TF-IDF itu apa ya ? belum pernah baca soalnya, kalao terkait iterasi memang ada 2 kondisi untuk berhenti : 1. kalau outputnya sudah sesuai atau batas maksimal iterasinya sudah tercapai, jd tetap diberi batasan maksimal iterasi supaya kalau prosesnya gak ketemu bobot terbaiknya bisa berhenti di iterasi tertentu, biar komputernya gak hang

      Hapus
    2. bobot dikatakan baik itu bagaimana ya terimakasih

      Hapus
  8. gan mau bertanya jika bobot tidak sama dengan target maka bobot awal tidak dirubah?, terumakasih

    BalasHapus
  9. mau nanya lagi , untuk iterasi nya kapan ya berhenti syarat untuk berhentingnya apa ya, terus untuk klasifikasinya berarti menggunakan bobot yang terakhir ya mas ?

    BalasHapus
    Balasan
    1. iterasi nya akan berhenti jika nilai learning rate nya kecil (<) dari minimum error, atau epoch nya besar (>) dari maxEpoch
      dan untuk klasifikasi nya itu menggunakan update bobot dari hasil Epoch nya yang terakhir
      semoga bisa membantu :)

      Hapus
  10. mas kalau data dari suara cocoknya pake apa ya mas?

    BalasHapus
  11. mas ingin nanya untuk target pada tabel itu, kita nentuin sendiri atau gimana ya ?

    BalasHapus
  12. alhamdulillah. terima kasih atas penjelasannya mas. sangat mudah dipahami

    BalasHapus
  13. mas mau nanya x1, x2,x3,.., xn dan target tuh apa yah? maksudnya yang mana data training dan yang mana data baru yang mau dibandingin.

    BalasHapus
    Balasan
    1. x1,x2...xn itu adalah data yang akan di latih(testing), Target itu merupakan si x1,x2, ...xn itu masuk ke kelas yang mana

      sedangkan data bobot(training) itu data yang akan di jadikan data banding

      Hapus
  14. gan mau tanya, LVQ contoh di atas fungsi aktivasinya yang mana ya ?

    BalasHapus
  15. mas saya mau nanya tentang perhitungan manual LVQ untuk project saya, apa kah ada email atau wa yang bisa saya hubungi ? mohon bantuan nya mas :)

    BalasHapus
  16. kelinci99
    Togel Online Terpercaya Dan Games Laiinnya Live Casino.
    HOT PROMO NEW MEMBER FREECHIPS 5ribu !!
    NEXT DEPOSIT 50ribu FREECHIPS 5RB !!
    Ada Bagi2 Freechips Untuk New Member + Bonus Depositnya Loh ,
    Yuk Daftarkan Sekarang Mumpung Ada Freechips Setiap Harinya
    segera daftar dan bermain ya selain Togel ad juga Games Online Betting lain nya ,
    yang bisa di mainkan dgn 1 userid saja .
    yukk daftar di www.kelinci99.casino

    BalasHapus
  17. mas mau bertanya, cara menentukan input vector (0,1,1,0) itu gimana ya?

    BalasHapus
  18. Halo kak untuk contoh GLVQ ada ga kak? Terimakasih

    BalasHapus
  19. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  20. mau nanya dong mas .... kalau datanya punya 4 kelas berarti bobot awalnya ada brapa ya ? tengkyu

    BalasHapus
  21. M88 Casino: New Member Bonus up to €100 + 300 FS
    M88 Casino offers its players an attractive welcome bonus m88 that will ensure 온카지노 you have link 12bet a safe gaming experience. Claim your bonus today!

    BalasHapus
  22. Balasan
    1. wah ini artikel udah lama banget, kodingnya gak tau kemana hehhee... next mungkin bisa aku buatkan tutorial videonya gan... next bsia di cek di channel youtube saya

      https://www.youtube.com/channel/UCMddKgnZ9AHIsE2MFia75VA

      Hapus

Posting Komentar

Postingan populer dari blog ini

Contoh Perhitungan Algoritma Perceptron

      Melanjutkan tulisan saya sebelumnya tentang algoritma perceptron,kali ini saya akan menulis tentang conto perhitungan manual algoritma perceptron. Untuk contoh kasusnya saya menggunakan data logika AND. Cekidot.... Algoritma      Data yang kita gunakan sebagai contoh adalah data logika AND sebagai berikut: x1 x2 target 0 0 0 0 1 0 1 0 0 1 1 1       tentukan bobot awal secara acak, saya pakai contoh w1 = 0,w2 =0, learning rate = 1, bias = 0,maksimal epoh = 10. Disini saya memakai fungsi aktivasi undak biner. Epoh ke 1 Data ke satu x = {0,0}, bobot w = {0,0},b=0,target = 0 y_in = (x1*w1)+(x2*w2)+b = (0*0)+(0*0)+0 = 0 y = sign(0) = 1 karena y != target maka hitung error dan update bobot  error = target - y = 0 - 1 = -1 w1_baru = w1_lama +(learning_rate*error*x1)                = 0 + (1*(-1)*0) = 0 w2_baru = w2_lama +(learning_rate*error*x2)                = 0+(1*(-1)*0) = 0

Pemrograman Berorientasi Object - Overloading dan Overriding

       Function atau method overloading dan override adalah fitur yang sangat mendasar dan berguna dari bahasa OOP manapun. Dalam tutorial ini kita akan membahas implementasi metode overloading dan override di php. Di sini pertama kita akan membahas dasar-dasar overloading dan override. Setelah eksplorasi dasar kita akan menerapkan overloading dan override di php. Sebelum melangkah lebih jauh, saya mengasumsikan bahwa Anda memiliki pengetahuan dasar tentang class dan pewarisan di php. Anda juga memiliki pemahaman tentang magic method di php. Magic method karena overloading di php bisa di implmentasikan dengan menggunakan magic method. Overriding        Arti dasar dari overriding di OOP sama dengan arti kata sebenarnya. Dalam arti kata sebenarnya dari overriding adalah menggantikan perilaku orang tua yang sama pada anak. Ini sama dengan override method di OOP. Dalam arti OOP, override adalah mengganti method class induk di class anak. Atau dengan method kata kunci sederhana yang me