Kohonen SOM dan Learning Vector Quantization (LVQ)

11
Pascasarjana Matematika/ITS Page 1 Exploratory Data Analysis JST-Kohonen SOM dan Learning Vector Quantization (LVQ) Abstrak Pada makalah ini dibahas aplikasi jaringan syaraf tiruan Kohonen SOM dan Learning Vector Quantization (LVQ) untuk pengelompokan atau clustering berdasarkan kesamaan atribut yang dimiliki bersama. Banyaknya atribut yang sama akan menggambarkan kedekatan kelompok daerah. Sistem ternyata mampu menghasilkan kelompok daerah yang terbentuk dari kesamaan dan kemiripan atribut, sehingga dapat diketahui keseesuaian pengalokasian subsidi dan sumbangan untuk setiap daerah tingkat II. 1. Pendahuluan Dalam suatu komputasi yang lebih kompeks, sangat tidka mungkin untuk membentuk suatu model karena kurang mencukupinya pengetahuan eksplisit tentang factor-faktor yang mempengaruhi time series atau pengetahuan tersebut perlu coast besar dalam memperolehnya. Dalam keadaan seperti ini metode exploratory data analysis (EDA) masih tetap dapat digunakan. Metode EDA dapat digunakan untuk mengilustrasikan struktur dalam sehimpun data statistik. Tujuan utama dari EDA adalah menampilkan agar mudah dipahami tetapi pada waktu yang bersamaan menyediakan informasi se-esensial mungkin dari himpunan data aslinya. Cluster analysis biasanya didasarkan kepada jarak ultrametic yang didefinisikan sepanjang graph hierarki clustring melalui perbandingan langsung dari simiaritas setiap dua data set yang terlihat membingungkan. Algoritma Kohonen-SOM adalah suatu metode yang unik dan dapat mengkombinasikan proyeksi dan algoritma clustering. Pada saat ang sama Kohonen SOM dapat digunakan untuk memvisualisasi cluster dalam sehimpunan data set dan untuk mempresentasikan data set dalam pemetaan dua-dimensi dengan tetap menjaga kedidaklinearan item-item data. Learning Vector Quantization (LVQ) adalah sebuah metode klasifikasi dimana setiap unit output mempresentasikan sebuah kelas. LVQ digunakan untuk pengelompokkan dimana jumlah kelompok sudah ditentukan arsitekturnya (target/kelas sudah ditentukan).

description

Kohonen SOM dan Learning Vector Quantization (LVQ)

Transcript of Kohonen SOM dan Learning Vector Quantization (LVQ)

Page 1: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 1

Exploratory Data Analysis

JST-Kohonen SOM dan Learning Vector Quantization (LVQ)

Abstrak

Pada makalah ini dibahas aplikasi jaringan syaraf tiruan Kohonen SOM dan Learning

Vector Quantization (LVQ) untuk pengelompokan atau clustering berdasarkan kesamaan

atribut yang dimiliki bersama. Banyaknya atribut yang sama akan menggambarkan kedekatan

kelompok daerah.

Sistem ternyata mampu menghasilkan kelompok daerah yang terbentuk dari kesamaan

dan kemiripan atribut, sehingga dapat diketahui keseesuaian pengalokasian subsidi dan

sumbangan untuk setiap daerah tingkat II.

1. Pendahuluan

Dalam suatu komputasi yang lebih kompeks, sangat tidka mungkin untuk membentuk

suatu model karena kurang mencukupinya pengetahuan eksplisit tentang factor-faktor yang

mempengaruhi time series atau pengetahuan tersebut perlu coast besar dalam memperolehnya.

Dalam keadaan seperti ini metode exploratory data analysis (EDA) masih tetap dapat

digunakan.

Metode EDA dapat digunakan untuk mengilustrasikan struktur dalam sehimpun data

statistik. Tujuan utama dari EDA adalah menampilkan agar mudah dipahami tetapi pada waktu

yang bersamaan menyediakan informasi se-esensial mungkin dari himpunan data aslinya.

Cluster analysis biasanya didasarkan kepada jarak ultrametic yang didefinisikan sepanjang

graph hierarki clustring melalui perbandingan langsung dari simiaritas setiap dua data set yang

terlihat membingungkan.

Algoritma Kohonen-SOM adalah suatu metode yang unik dan dapat

mengkombinasikan proyeksi dan algoritma clustering. Pada saat ang sama Kohonen SOM

dapat digunakan untuk memvisualisasi cluster dalam sehimpunan data set dan untuk

mempresentasikan data set dalam pemetaan dua-dimensi dengan tetap menjaga

kedidaklinearan item-item data.

Learning Vector Quantization (LVQ) adalah sebuah metode klasifikasi dimana setiap

unit output mempresentasikan sebuah kelas. LVQ digunakan untuk pengelompokkan dimana

jumlah kelompok sudah ditentukan arsitekturnya (target/kelas sudah ditentukan).

Page 2: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 2

LVQ salah satu jaringan syaraf tiruan yang merupakan algoritma pembelajaran kompetitif

terawasi versi dari algoritma Kohonen Self-Organizing Map (SOM). Tujuan dari algoritma ini

adalah untuk mendekati distribusi kelas vektor untuk meminimalkan kesalahan dalam

pengklasifikasian.

Berikut akan dilakukan pengelompokan atau clustering wilayah jawa timur yang

membaginya ke dalam 4 kelompok berdasarkan kesamaan atribut yang dimiliki bersama

dengan menggunakan algoritma Kohonen SOM dan Learning Vector Quantization (LVQ)

2. Clustering

Analisis Cluster adalah upaya menemukan sekelompok obyek yang mewakili suatu

karakter yang sama atau hampir sama (similar) antar satu obyek dengan obyek lainnya pada

suatu kelompok dan memiliki perbedaan (not similar) dengan obyek–obyek pada kelompok

lainnya. Tentunya persamaan dan perbedaan tersebut diperoleh berdasar informasi yang

diberikan oleh obyek–obyek tersebut beserta hubungan (relationship) antar obyek.

Berdasarkan tipe pembelajarannya, jaringan syaraf tiruan (JST) dapat dibagi menjadi

dua macam tipe JST, JST supervised dan JST unsupervised. Perbedaan kedua macam JST

tersebut didasarkan pada sifat data dan kemampuan pembelajaran JST. Pada JST supervised

data pelatihannya terdapat data masukan dan data pembimbing, proses pembelajaran adalah

penyesuaian bobot JST agar dengan keluaran proses data masukan akan menyerupai data

bimbingan. Sedangkan yang dimaksud JST unsupervised adalah JST yang mempunyai

kemampuan penyesuaian bobot JST hanya didasarkan data masukannya (tanpa data

pembimbing).

3. Algoritma SOM (Self-Organizing Map) Kohonen

Jaringan SOM Kohonen merupakan salah satu model jaringan syaraf yang

menggunakan metode pembelajaran unsupervised.

Gambar 1. Struktur Jaringan Syaraf Tiruan SOM Kohonen

Page 3: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 3

Jaringan SOM Kohonen terdiri dari dua layer, yaitu layer input dan layer output. Setiap neuron

dalam lapisan input terhubung dengan setiap neuron pada lapisan output. Setiap neuron dalam

lapisan output merepresentasikan kelas dari input yang diberikan. Berikut ini adalah tahapan

algoritma JST kohonen sebagai berikut:

Langkah 0 Inisialisasi bobot 𝑤𝑖𝑗 dengan nilai random. Atur parameter learning rate

dan parameter tetangga (R)

Langkah 1 Apabila kondisi selesai belum terpenuhi, lakukan langkah 2-8

Langkah 2 Untuk setiap vector input x, lakukan langkah 3-5

Langkah 3 Untuk setiap j, Hitung:

𝐷(𝑗) = ∑(𝑤𝑖𝑗

𝑖

− 𝑥𝑖)2

Langkah 4 Mencari indeks j dengan 𝐷(𝑗) adalah minimum

Langkah 5 Melakukan perbaikan nilai 𝑤𝑖𝑗 dengan nilai tertentu yaitu :

𝑤𝑖𝑗(𝑛𝑒𝑤) = 𝑤𝑖𝑗(𝑜𝑙𝑑)+∝ [𝑥𝑖 − 𝑤𝑖𝑗(𝑜𝑙𝑑)]

Langkah 6 Learning rate diperbarui

Langkah 7 Mereduksi radius dari fungsi tetangga pada waktu tertentu

(epoch).

Langkah 8 Menentukan kondisi STOP

4. Algoritma Learning Vector Quantization (LVQ)

Learning vector quantization (LVQ) adalah metode pengelompokan polayang mana

setiap output mewakili suatu kelas atau kategori. Vector referensi maupun vector pelatihan

dapat berupa data riil biner atau bipolar. Arsitektur dari suatu LVQ neural network ditunjukkan

pada gambar2. Algoritma dari metode ini sebagai berikut:

Langkah 0 Inisialisasi vector referensi dan learning rate

Langkah 1 Selama kondisi berhenti salah, kerjakan langkah 2-6

Langkah 2 Untuk setiap vector input x, kerjakan langkah 3-4

Langkah 3 Dapatkan J sehingga ‖𝑥 − 𝑤𝑗‖ minimum

Langkah 4 Perbaiki wj menurut:

Jika T = Cj, maka

wj (new) = wj (old) + a[x – wj (old)]

if T ≠ Cj, maka

wJ(new) = wJ(old) – _[x – wj(old)]

Page 4: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 4

Langkah 5 Reduksi learning rate

Langkah 6 Uji kondisi berhenti

Dapat menggunakan jumlah iterasi yang tetap atau learning rate mendekati nilai yang

sangat kecil.

Keterangan notasi :

x vector training (x1, . . .,xi, . . ., xn)

T kategori yang benar untuk vector training

w vector bobot unit output ke-j (x1j, . . .,xij, . . ., xnj)

Cj kategori yang diwakilkan oleh unit output ke-j.

‖𝑥 − 𝑤𝑗‖ jarak Euclidean antara vector input dan vector bobot untuk unit output ke-j

Gambar 2. LVQ Neural Net

Page 5: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 5

5. Data Input

Berikut ini merupakan data input (telah dinormalkan) yang di cluster menjadi 4 kelompok:

Nama_daerah X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 Class

Kdy. Madiun 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Pacitan 0 0 0 0 0 0 0 1 0 1 1 1 0 1

Ponorogo 1 0 0 0 0 0 0 0 1 1 1 0 0 1

Trenggalek 0 0 0 1 0 1 1 1 1 0 1 1 0 2

Tulungagung 1 0 1 0 0 0 0 0 1 0 1 1 0 2

Blitar 1 0 0 0 1 0 0 0 0 0 1 1 0 2

Kediri 1 1 1 0 0 1 0 0 0 0 1 1 0 3

Malang 1 1 1 0 0 1 0 0 0 1 1 1 0 3

Lumajang 1 0 1 0 0 0 0 1 1 0 1 1 0 2

Jember 1 1 1 1 0 1 0 0 0 0 0 1 0 3

Banyuwangi 1 1 1 0 0 1 0 0 0 1 0 1 0 3

Bondowoso 0 0 0 0 0 0 0 1 1 1 1 1 0 1

Situbondo 0 0 0 0 0 0 0 1 0 0 1 1 0 1

Probolinggo 1 0 0 0 0 0 0 0 1 0 1 1 0 2

Pasuruan 1 1 1 0 0 1 0 0 0 0 1 1 0 3

Sidoarjo 1 1 1 1 1 1 0 0 1 0 1 1 0 4

Mojokerto 1 1 0 0 0 0 0 1 1 0 1 1 0 1

Jombang 1 0 0 0 1 0 0 0 1 0 1 1 0 2

Nganjuk 1 0 1 0 0 0 0 0 1 1 1 1 0 2

Madiun 0 0 0 0 0 0 0 0 1 0 1 1 0 1

Magetan 0 0 1 0 1 0 0 0 1 0 1 1 0 2

Ngawi 0 0 0 0 0 0 0 0 1 0 1 1 0 1

Bojonegoro 1 0 1 0 1 0 0 0 1 1 1 1 0 2

Tuban 1 1 1 0 0 1 0 0 0 0 1 1 0 3

Lamongan 1 0 0 0 0 0 0 0 0 0 1 1 0 2

Gresik 1 1 0 0 1 1 0 1 1 0 1 1 0 4

Bangkalan 0 0 1 0 0 0 0 1 1 0 0 1 0 1

Sampang 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Pamekasan 0 0 1 0 0 0 0 0 1 0 1 1 0 2

Sumenep 1 0 0 0 0 1 0 0 0 0 1 1 0 3

Kdy. Kediri 0 0 0 0 1 0 0 1 1 0 1 1 0 1

Kdy. Blitar 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Kdy. Malang 0 1 1 1 1 1 0 1 1 1 1 1 0 4

Kdy. Probolinggo 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Kdy. Pasuruan 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Kdy. Mojokerto 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Batu 0 1 1 1 1 1 1 0 0 1 0 0 0 3

1 Sumber data: Jurnal Exploratory Data Analysis dengan JST - Kohonen SOM: Struktur Tingkat

Kesejahteraan Daerah Tk II se Jawa Timur oleh Prof. Drs, M. Isa Irawan, MT

Page 6: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 6

Keterangan :

X1 = Jumlah Penduduk

X2 = Pajak Daerah

X3 = Retribusi Daerah

X4 = Bagian Laba Usaha Daerah

X5 = Penerimaan lain-lain

X6 = Bagi Hasil Pajak

X7 = Bagi Hasil Bukan Pajak

X8 = Subsidi Daerah Otonom

X9 = Bantuan Pembangunan

X10 = Penerimaan Lainnya

X11 = Pinjaman Pemerintah Pusat

X12 = Pinjaman Lembaga Keuangan Dalam Negeri

X13 = Pinjaman Dari Luar Negeri

Data input diatas dinormalisasi berdasarkan acuan sebagai berikut:

𝑓(𝑥) = {1, 𝑥𝑖 ≥ 𝑥𝑟𝑎𝑡𝑎−𝑟𝑎𝑡𝑎

0, 𝑥𝑖 < 𝑥𝑟𝑎𝑡𝑎−𝑟𝑎𝑡𝑎

Kemudian data-data input tersebut diproses oleh sistem JST sehingga menghasilkan output

berupa kelompok daerah tingkat II berdasarkan penerimaan daerah.

Tabel data bobot awal

Nama daerah X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 Class

Kdy. Madiun 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Trenggalek 0 0 0 1 0 1 1 1 1 0 1 1 0 2

Kediri 1 1 1 0 0 1 0 0 0 0 1 1 0 3

Sidoarjo 1 1 1 1 1 1 0 0 1 0 1 1 0 4

Tabel data training

Nama daerah X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 class

Pacitan 0 0 0 0 0 0 0 1 0 1 1 1 0 1

Ponorogo 1 0 0 0 0 0 0 0 1 1 1 0 0 2

Tulungagung 1 0 1 0 0 0 0 0 1 0 1 1 0 2

Blitar 1 0 0 0 1 0 0 0 0 0 1 1 0 2

Malang 1 1 1 0 0 1 0 0 0 1 1 1 0 3

Lumajang 1 0 1 0 0 0 0 1 1 0 1 1 0 2

Jember 1 1 1 1 0 1 0 0 0 0 0 1 0 3

Banyuwangi 1 1 1 0 0 1 0 0 0 1 0 1 0 3

Bondowoso 0 0 0 0 0 0 0 1 1 1 1 1 0 1

Page 7: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 7

Situbondo 0 0 0 0 0 0 0 1 0 0 1 1 0 1

Probolinggo 1 0 0 0 0 0 0 0 1 0 1 1 0 2

Mojokerto 1 1 0 0 0 0 0 1 1 0 1 1 0 1

Jombang 1 0 0 0 1 0 0 0 1 0 1 1 0 2

Nganjuk 1 0 1 0 0 0 0 0 1 1 1 1 0 2

Ngawi 0 0 0 0 0 0 0 0 1 0 1 1 0 1

Gresik 1 1 0 0 1 1 0 1 1 0 1 1 0 4

Bangkalan 0 0 1 0 0 0 0 1 1 0 0 1 0 1

Sampang 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Kdy. Kediri 0 0 0 0 1 0 0 1 1 0 1 1 0 1

kdy.Pasuruan 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Sumenep 1 0 0 0 0 1 0 0 0 0 1 1 0 3

Kdy. Blitar 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Kdy. Probolinggo 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Kdy. Pasuruan 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Kdy. Mojokerto 0 0 0 0 0 0 0 1 1 0 1 1 0 1

Magetan 0 0 1 0 1 0 0 0 1 0 1 1 0 2

Bojonegoro 1 0 1 0 1 0 0 0 1 1 1 1 0 2

Lamongan 1 0 0 0 0 0 0 0 0 0 1 1 0 2

Pamekasan 0 0 1 0 0 0 0 0 1 0 1 1 0 2

Pasuruan 1 1 1 0 0 1 0 0 0 0 1 1 0 3

Tuban 1 1 1 0 0 1 0 0 0 0 1 1 0 3

Kdy. Malang 0 1 1 1 1 1 0 1 1 1 1 1 0 4

Batu 0 1 1 1 1 1 1 0 0 1 0 0 0 3

6. Pembahasan

Berikut merupakan Listing Program yang digunakan dalam memproses data input:

a. Kohonen

data=handles.data;

TP=get(handles.edit2, 'String'); Jarak=get(handles.edit3, 'String');

net = newsom(data',[2 2],TP,Jarak);

iterasi=str2num(get(handles.edit7, 'String')); net.trainParam.epochs=iterasi;

net.trainParam.lr =0.01; net.trainParam.nd =1;

net=train(net,data');

output=sim(net,data');

Page 8: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 8

Klasifikasi=vec2ind(output);%hasil dr outpu dujadkan vektor 2

dimensi

figure(5) plotsom(net.layers{1}.positions); hold off

figure(3) plotsom(net.iw{1,1},net.layers{1}.distances);%jarak

figure(2) plotsomnd(net);%jaringan

figure(4) plotsomhits(net,data');%

xlswrite('DataJawaTimur.xlsx',Klasifikasi',1,'P2');

[o NamaKota]=xlsread('DataJawaTimur.xlsx',1,'A2:A38');%

delete('DataKelas.xlsx') listKelas=[];

for k=1:4 for i=1:37

if Klasifikasi(i) == k kelas=NamaKota(i);

listKelas=[listKelas kelas]; end end

if isempty(listKelas)%jika kosong dlm kelompok listKelas='kosong'; end

x=[64+k]; Range = char(x);%menentukan di exel kolom A,B,C,D

berdasarkan asci xlswrite('DataKelas.xlsx',listKelas',2,Range); listKelas=[];

end

[o datakelas]=xlsread('DataKelas.xlsx',2,'A1:z37');%plot

pengelompokan set(handles.uitable5,'data',datakelas);

Page 9: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 9

Hasil Output

b. LVQ

data=handles.data; input=data';

Tc=(xlsread('datatraining.xlsx',1,'O2:O34'))'; T= ind2vec(Tc); target = full(T);

% Alpha=str2num(get(handles.edit2, 'String')); % Percentage=str2num(get(handles.edit3, 'String'));

net = newlvq(minmax(input),4,[9/37 9/37 9/37 10/37]); %

iterasi=str2num(get(handles.edit7, 'String')); net.trainParam.epochs=iterasi; net.IW{1,1}=[0 0 0 0 0 0 0 1 1 0 1 1

0;...%madiun 0 0 0 1 0 1 1 1 1 0 1 1

0;...%trenggalek 1 1 1 0 0 1 0 0 0 0 1 1

0;...%kediri 1 1 1 1 1 1 0 0 1 0 1 1

0];%sidoarjo

net = train(net,input,target);

output = sim(net,input)

Page 10: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 10

Klasifikasi=vec2ind(output); Output=Klasifikasi'

xlswrite('DataJawaTimur.xlsx',Klasifikasi',1,'Q2');

[o NamaKota]=xlsread('datatraining.xlsx',1,'A2:A34');

delete('DataKelas.xlsx') listKelas=[];

for k=1:4 for i=1:33

if Klasifikasi(i) == k kelas=NamaKota(i);

listKelas=[listKelas kelas]; end end

if isempty(listKelas) listKelas='kosong'; end

x=[64+k]; Range = char(x); xlswrite('DataKelas.xlsx',listKelas',3,Range); listKelas=[];

end

[o datakelas]=xlsread('DataKelas.xlsx',3,'A1:z37'); set(handles.uitable5,'data',datakelas);

Page 11: Kohonen SOM dan Learning Vector Quantization (LVQ)

Pascasarjana Matematika/ITS Page 11