Buku Belajar Machine Learning dengan Python-Learning Vector Quantization

Print Friendly, PDF & Email

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

  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.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *