Sinopsis
Learning Vector Quantization adalah salah satu metode pelatihan secara kompetitif yang sama seperti teknik percepton dan bacpropagation. Kita singkat saja dengan LVQ yang termasuk dari algoritma machine learning berbasis supervisi. Penulis sajikan data berikut yang terdiri dari 2 paramater dan 1 target output
Bila kita plot data menggunakan jenis scatter akan terlihat terdiri dari 3 cluster / grup
Penulis menggunakan python dan numpy untuk melakukan perhitungan berikut
import csv
import numpy as np
from library_lvq import LVQ
print 'mulai'
d = np.genfromtxt('data.csv',delimiter=',')
data_input = d[:,0:2]
data_target = np.zeros([np.size(data_input,0),1]) #bikin matrix target
data_target[:,0] = d[:,2] #assign dengan kolom sebagai target
data_target = data_target+1
print 'data input',data_input
max_epoch = 1000
target_error = 0.01
lvq = LVQ()
jumlah_kelas = 3
jumlah_paramater = 2
bobot_awal = lvq.setBobotRandom(jumlah_kelas,jumlah_paramater) #kita pakai bobot random saja
#proses pelatihan
lvq.pelatihan(data_input,
bobot_awal,
data_target,
max_epoch,
target_error)
bobot_akhir = lvq.BOBOT #bobot hasil pelatihan
prediksi = lvq.pengujian(data_input,bobot_akhir) #lakukan prediksi
print 'target\n',data_target
print 'bobot awal\n',bobot_awal
print 'prediksi\n',prediksi
print 'bobot setelah pelatihan\n',bobot_akhir
print 'epoch\n',lvq.EPOCH
print 'done'
print 'kita bandingkan antar data_target==prediksi\n', data_target==prediksi
print 'jumlah data yang diuji\n',np.size(d,0)
b = data_target==prediksi
print 'jumlah berhasil\n',b.sum()
Kode Learning Vector Quantization diatas ditulis berdasarkan pada referensi berikut
- T. Kohonen. An introduction to neural computing. Neural Networks,1(1):3–16, 1988.
- T. Kohonen. Learning vector quantization. Neural Networks, 1:303,1988.
Berikut hasil yang ditampilkan terdiri dari bobot dan hasil prediksi
mulai data input [[ 2.7810836 2.550537 ] [ 1.46548937 2.36212508] [ 3.39656169 4.40029353] [ 1.38807019 1.85022032] [ 3.06407232 3.00530597] [ 7.62753121 2.75926224] [ 5.33244125 2.08862677] [ 6.92259672 1.77106367] [ 8.67541865 -0.24206865] [ 7.67375647 3.50856301] [-1. -1. ] [-2. -2. ]] target [[ 1.] [ 1.] [ 1.] [ 1.] [ 1.] [ 2.] [ 2.] [ 2.] [ 2.] [ 2.] [ 3.] [ 3.]] bobot awal [[ 0.29099099 0.89736528] [ 0.77639942 0.32244049] [ 0.50293928 0.94421681]] prediksi [[ 1.] [ 1.] [ 1.] [ 1.] [ 1.] [ 2.] [ 2.] [ 2.] [ 2.] [ 2.] [ 3.] [ 3.]] bobot setelah pelatihan [[ 1.31912068 2.09943898] [ 5.80948915 1.28862291] [-0.56895638 -0.29873992]] epoch 3 done kita bandingkan antar data_target==prediksi [[ True] [ True] [ True] [ True] [ True] [ True] [ True] [ True] [ True] [ True] [ True] [ True]] jumlah data yang diuji 12 jumlah berhasil 12
Bagaimana menurut kalian mengenai Learning Vector Quantization adalah salah satu metode pelatihan secara kompetitif yang sama seperti teknik percepton dan bacpropagation.
