LKP-12-Self-Organizing-Maps

Download Report

Transcript LKP-12-Self-Organizing-Maps

Self Organizing Maps
Tim Asprak Metkuan
http://bit.ly/UjMoLI
What is it SOM?
• Salah satu model NN yang menggunakan
metode competitive unsupervised learning
• Solusi untuk merepresentasikan data
multidimensi ke dalam ruang dimensi yang
lebih kecil (1 atau 2 dimensi)
• Cluster direpresentasikan oleh bobot cluster
• Menghitung jarak objek ke cluster
Architecture
Terdapat satu vektor bobot dengan panjang n, yang dihubungkan dengan setiap
unit ouput
Uses
Uses (cont)
A map of the world where countries have been colored with the color describing their poverty
type (the color was obtained with the SOM in the previous figure):
Algorithm
• Buat topologi jaringan (node input & output)
• Inisialisasi bobot dari input ke output
(midpoint/ random). Panjang vektor bobot
sepanjang node input untuk setiap node
output.
• Inisialisasi learning rate (α), penurunan
learning rate (Ɵ), dimana 0 < α,Ɵ < 1
• Inisialisasi jumlah tetangga (R)
Algorithm (cont)
1. Untuk setiap vektor sampel x, hitung jarak terhadap
vektor bobot cluster (Euclidean distance). Cluster dari
x adalah cluster dengan jarak minimum.
2. Update bobot cluster pemenang
3. Update α dan R
4. Ulangi langkah 1 hingga kondisi berhenti terpenuhi
SOM in Matlab
net = newsom(P,[D1,D2,...],TFCN,DFCN,OLR,OSTEPS,TLR,TNS)
•
•
•
•
•
•
P
Di
TFCN
DFCN
OLR
OSTEPS
• TLR
• IN
: matrik RxQ dari sejumlah Q vektor input
: ukuran dimensi layer
: fungsi topologi, default = ‘hextop’
: fungsi jarak, default = ‘linkdist ‘, euclidean = ‘dist’
: learning rate awal, default = 0.9
: jumlah langkah ketetanggaan untuk
menyusutkan menjadi 1, default =100
: penurunan learning rate, default = 0.02
: inisialisasi ketetanggaan, default = 3
Davies-Bouldin Index
Davies-Bouldin Index digunakan untuk memaksimalkan jarak inter cluster di
antara cluster Ci dan Cj, pada saat yang sama juga mencoba meminimalkan
jarak antara titik dalam cluster.
1 k
DB  . Ri
k i 1
C = {C1,.., Ck} merupakan clustering dari N objek
Dengan:
Ri  max Rij
j 1,..k ,i  j
Keterangan:
Ci : cluster ke i
ci : centroid cluster ke i
Rij 
i j
var(Ci )  var(C j )
|| ci  c j ||
Example
• Pelatihan menggunakan data nilai (nilai.xls)
• Inisialisasi:
– Learning rate = 0,3, penurunan learning rate = 0,5,
R=0
– Bobot awal:
W=
25
30
50
50
Matlab code
%Komentar
rand('seed',8353);
echo on; %echo untuk menampilkan di matlab
%contoh echocardiogram
%hit any hey
pause
Q = load('data.mat');
P = Q.data(:,:);
P = P'; %ada 35 instance dengan 2 atribut --> uts,uas
figure, plot(P(1,:),P(2,:), '.'); %plot untuk menampilkan baris pertama untuk semua kolom
%hit any key
pause
net = newsom(P,[2 1],'hextop','dist',0.3,100,0.5,1); %  setting parameter
Matlab code (cont)
%hit any key
pause
net.trainParam.epochs = 25; %banyak iterasi = 25
net.IW{1,1} =[25 30;50 50]; %inisialisasi bobot awal
net = train(net,P);
%hit any key
pause
figure, plot(P(1,:),P(2,:), '.');
hold on
plot(net.iw{1,1}(:,1),net.iw{1,1}(:,2),'rx')
hold off
%hit any key
pause
Matlab code (cont)
tes = net.iw{1,1}
%hit any key
pause
result = sim(net,P); %clustering similarity
result = vec2ind(result);
%hit any key
pause
xlswrite('bobot_akhir',tes,'result');
pause
echo off
disp('end of SOM')
Exercise
• Menggunakan data nilai uts dan uas, lakukan
pembentukan cluster dengan SOM 1 iterasi
menggunakan excel (latihan.xls)
• Inisialisasi:
– Learning rate = 0,3, penurunan learning rate = 0,5,
R=0
– Bobot awal:
W=
25
30
50
50