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).
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
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)]
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
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
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
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');
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);
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)
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);
Pascasarjana Matematika/ITS Page 11

Kohonen SOM dan Learning Vector Quantization (LVQ)

  • 1.
    Pascasarjana Matematika/ITS Page1 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).
  • 2.
    Pascasarjana Matematika/ITS Page2 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
  • 3.
    Pascasarjana Matematika/ITS Page3 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)]
  • 4.
    Pascasarjana Matematika/ITS Page4  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
  • 5.
    Pascasarjana Matematika/ITS Page5 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
  • 6.
    Pascasarjana Matematika/ITS Page6 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
  • 7.
    Pascasarjana Matematika/ITS Page7 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');
  • 8.
    Pascasarjana Matematika/ITS Page8 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);
  • 9.
    Pascasarjana Matematika/ITS Page9 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)
  • 10.
    Pascasarjana Matematika/ITS Page10 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);
  • 11.