Senin, 16 Oktober 2017

Learning Vector Quantization

Learning Vector Quantization adalah salah satu metode pelatihan secara kompetitif yang sama seperti teknik percepton dan bacpropagation. Penulis sajikan data berikut yang terdiri dari 2 paramater dan 1 target output



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()

Dengan referensi berikut
[1] T. Kohonen. An introduction to neural computing. Neural Networks,1(1):3–16, 1988.
[2] T. Kohonen. Learning vector quantization. Neural Networks, 1:303,1988.
Menghasilkan

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
 

Posting Komentar