SlideShare a Scribd company logo
BAB I 
PENDAHULUAN 
1.1 Latar Belakang 
Clustering merupakan suatu proses untuk mengelompokkan kumpulan objek-objek fisik 
atau objek-objek abstrak ke dalam kelas-kelas objek yang similar (mirip). Cluster adalah 
kumpulan dari objek atau data yang mempunyai kemiripan satu dengan yang lain dalam cluster 
yang sama dan tidak mirip dengan objek dalam cluster yang berbeda. Secara prinsip cluster 
merupakan kumpulan dari objek data yang mempunyai kemiripan berdasarkan karakteristik 
tertentu (karakteristik disini bisa kombinasi dari atribut tertentu tergantung user) kemudian 
melakukan pengelompokan jika dianggap mirip. Suatu cluster dari objek data dapat diperlakukan 
secara kolektif sebagai satu group dalam berbagai aplikasi. 
Terdapat beberapa algoritma yang digunakan didalam mengumpulkan atau 
mengelompokan suatu data sehingga didalam setiap object dalam satu kelompok data mirip akan 
tetapi tidak mirip dengan kelompok yang lainnya. Algoritma clustering yang meliputi K-Means, 
K-Medoids, DBSCAN dan lainnya yang digunakan didalam menyelesaikan permaslahan 
pengelompokan data 
1.2 Tujuan 
Adapun tujuan dari pembuatan aplikasi Datamining dengan menggunakan metode 
Kohonen yaitu antara lain: 
1.3 Manfaat
BAB II 
LANDASAN TEORI 
2.1 Kohonen 
Kohonen adalah merupakan algoritma jaringan pcerdas dengan kategori pembelajaran secara 
kompetitif dan bersifat unsupervised. Sistem secara otomatis dapatmelakukan pengelompokan atau 
klasifikasi tanpamenggunakan pembelajaran dengan pasangan dataterlebih dahulu.Secara umum, pembaruan 
nilai bobot adalahberdasar nilai jarak terkecil dari bobot terhadap nilai datamasukan. Pembaruan 
dilakukan hanya pada bobot yang berhubungan dengan node yang terdekat 
Gambar 1.1 Arsitektur Jaringan Kohonen SOM 
Seperti yang diperlihatkan dalam gambar diatas dimisalkan bahwa terdapat 2 unit input ( 
P1 dan P2), yang akan dibentuk kedalam 3 cluster neuron lapisan output (Y1, Y2, dan Y3). 
Selanjutnya neuron-neuron tersebut akan memperbaiki bobotnya masing-masing, sebagai bobot 
Wij.Dalam hal ini, bobot Wij mengandung pengertian bobot yang menghubungkan neuron ke-j 
pada lapisan input menuju neuron ke-i pada lapisan output. 
2.2 Algoritma Kohonen 
Berikut merupakan langkah langkah yang ddilakukan untuk jaringan Kohonen 
1. Langkah 1 
Inisialisasi bobot Wij, Tetapkan parameter cluster (m) dan parameter laju pelatihan (∝). 
2. Langkah 2 
Selama syarat berhenti salah, lakukan langkah-langkah dibawah ini: 
Step 1 Untuk setiap Vector masukan X, lakukan beberapa langkah dibawah ini: 
i. Untuk setiap j hitunglah .
ii. Cari indeks j sedemikian sehingga D(j) minimum. 
iii. Untuk semua unit j didalam ketetanggaan j, dan untuk semua I, hitunglah: 
Step 2 Perbarui laju belajar. 
Step 3 Kurangi jari-jari ketetanggaan topologis dengan pencacahan tertentu. 
Step 4 Uji syarat berhenti. Bila benar, maka berhenti.
BAB III 
PEMBAHASAN DAN ANALISA 
Program berikut merupakan program SOM Kohonen dengan menggunakan MATLAB. 
Selama proses pembelajaran (clustering) jarak tetangga yang digunakan juga menurun. Nilai 
bobot wij ditentukan secara random. Berikut adalah algoritma pembelajaran metode SOM 
Kohonen (Fausset, 1993). 
3.1 Algoritma Pembelajaran 
1. Langkah 0 : 
- Inisialisasi bobot wij. Berikut merupakan sintaks inisialisasi bobot pada MATLAB 
menggunakan fungsi random. 
- Inisialisasi radius ketetanggaan σ. Berikut merupakan sintaks inisialisasi radius pada 
MATLAB 
- Set parameter topological neighbourhood 
- Set parameter laju pembelajaran α. 
2. Langkah 1 : Jika syarat berhenti tidak dipenuhi (Salah), Kerjakan langkah 2 – 8 
function [a,w] = som(x, n, tmax, seed) 
% SOM Kohonen's two-dimensional Self-Organizing Map 
% A = SOM(X, N, TMAX) returns an N-by-N matrix A of output 
nodes 
% learned as an unsupervised map from input vectors X, using 
Kohonen's 
% Self-Oganizing Map algorithm. Matrix A contains indices of X. 
TMAX 
% is the number of time steps to to run. Empirically-determined 
% learning parameters are hard-coded in the source code and can 
be 
% modified. 
% 
% [A,W] = SOM(X, N, TMAX) also returns the N^2 weights on A. 
% 
% SOM(X, N, TMAX, SEED) supports seeding the random-number
% generator for reproducible results. 
% 
% See also SOMLEARN, PLOT_NODES. 
% learning parameters 
MU_I = 0.5; % learning rate: initial 
MU_F = 0.1; % : final 
SIGMA_I = 3.0e0; % attraction between points : initial 
SIGMA_F = 1.0e-1; % : final 
% seed random-number generator if specified 
if nargin > 7 
rand('state', seed) 
end 
% set up NxN grid 
[o(:,1), o(:,2)] = ind2sub([n n], 1:n^2); 
% create random initial weights 
w = rand(n^2, size(x,2)); 
% run SOM learning for specified number of steps 
for t = 1:tmax 
w = somlearn(w, o, x, MU_I, MU_F, SIGMA_I, SIGMA_F, t, tmax); 
end 
% return grid of input indices 
a = zeros(n,n); 
for i = 1:size(o,1) 
j = o(i,1); 
k = o(i,2); 
a(j,k) = index_of_closest(w(i,:), x); 
end 
Kode Program 3.1 Inisialisasi Nilai
3. Langkah 2 : Untuk setiap input vektor x , kerjakan langkah 3 – 5. Berikut merupakan 
sintaks yang akan secara random memilih sebuah input vektor x. 
% randomly choose an input vector x 
x_pick = pickrand(x); 
Kode Program 3.2 Memilih Input Vektor x Secara Random 
Sintaks tersebut akan memanggil fungsi pickrand (x) seperti berikut: 
function obj = pickrand(objs) 
% OBJ = PICKRAND(OBJS) returns a random object OBJ from a vector or cell 
% array OBJS of objects. If OBJS is a matrix, PICKRAND returns a random 
% row from the matrix. 
i = randindex(objs); 
if size(objs, 1) > 1 
obj = objs(i,:); 
else 
obj = objs(i); 
end 
Kode Program 3.3 Fungsi pickrand(objs) 
Sintaks tersebut akan memanggil fungsi randindex(objs) seperti berikut: 
function i = randindex(objs) 
% I = RANDINDEX(OBJS) returns a random index into a vector or cell 
% array OBJS of objects. If OBJS is a matrix, RANDINDEX returns a random 
% row index from the matrix. 
if size(objs, 1) > 1 
i = 1+fix(rand*size(objs,1)); 
else 
i = 1+fix(rand*length(objs)); 
end 
Kode Program 3.4 Fungsi randindex(objs)
4. Langkah 3 : Untuk setiap indeks j, hitung jarak antara input dengan bobot atau D(j) 
function d = eucdist(x, y) 
% D = EUCDIST(X, Y) returns Euclidean distance between vectors X and Y. 
d = mag(x-y); 
Kode Program 3.5 Menghitung Jarak 
5. Langkah 4 : Cari unit pemenang (indeks J), yaitu unit yang memiliki nilai D(j) minimum. 
% determine the winning output node i closest to x 
i = index_of_closest(x_pick, w); 
Kode Program 3.6 Mencari Unit Pemenang 
Berikut merupakan fungsi index_of_closest 
function i = index_of_closest(x, w) 
% I = INDEX_OF_CLOSEST(X, W) takes length-N vector X nad MxN matrix W 
% and returns row I of W closest to X. 
[ignore, i] = closest(x, w); 
Kode Program 3.7 Fungsi index_of_closest 
Sintaks tersebut akan memanggil fungsi closest seperti berikut: 
function [y, i] = closest(x, ys) 
% [Y, I] = CLOSEST(X, YS) returns point Y and index I of closest point in 
% YS to X. 
xs = repmat(x, size(ys, 1), 1); 
d = eucdist(xs, ys); 
s = sum(d, 2); 
[ignore, i] = min(s); 
y = ys(i,:); 
Kode Program 3.8 Fungsi closest
6. Langkah 5: Hitung semua nilai Wij (baru) dengan nilai J dari langkah 4. 
Wij (baru) = Wij lamaαXi - Wij lama 
% update weights and track weight changes 
w = update_weights(w, u, x_pick, i, t, tmax, mu_i, mu_f, sigma_i, sigma_f); 
Kode Program 3.9 Update Nilai Bobot 
Berikut merupakan fungsi update_weights 
function w = update_weights(w, u, x_pick, i, t, tmax, ... 
mu_i, mu_f, sigma_i, sigma_f) 
% UPDATE_WEIGHTS Update weights for Kohonen's Self-Organizing Map. 
% Generally this function should not be called directly, but is called 
% automatically by SOMLEARN. See SOMLEARN for an explanation of the 
% parameters. 
% scale learning paramters by elapsed time 
tfrac = t / tmax; 
mu = scale(mu_i, mu_f, tfrac); 
sigma = scale(sigma_i, sigma_f, tfrac); 
% udpate the weights, tracking mean weight change 
for k = 1:size(w, 1) 
aleph = exp(-sum((u(i,:)-u(k,:)).^2) / (2*sigma^2)); 
dw = mu * aleph * (x_pick - w(k,:)); 
w(k,:) = w(k,:) + dw; 
end 
Kode Program 3.10 Fungsi Update Weights 
7. Langkah 6 : Ubah (update) nilai laju pembelajaran. 
8. Langkah 7 : Kurangi radius tetangga pada waktu tertentu. 
9. Langkah 8 : Periksa syarat berhenti.
Berikut merupakan tampilan uji coba program. Misalkan kita menggunakan node ring. 
Untuk memanggil program, gunakan sintaks somdemo(@nicering, 200). 200 merupakan nilai 
threshold. 
Gambar Node ring 
Berikut tampilan program setelah di-run 
Gambar Node Ring setelah di-run

More Related Content

What's hot

LN s04-machine vision-s2
LN s04-machine vision-s2LN s04-machine vision-s2
LN s04-machine vision-s2
Binus Online Learning
 
Tugas mandiri pengolahan citra digital
Tugas mandiri pengolahan citra digitalTugas mandiri pengolahan citra digital
Tugas mandiri pengolahan citra digital
anggysanggy
 
Laporan Matlab
Laporan MatlabLaporan Matlab
Laporan Matlab
Nadia R N N
 
Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02
KuliahKita
 
Pengenalan Matlab
Pengenalan MatlabPengenalan Matlab
Pengenalan Matlab
istiqomahazizah
 
Bab 8 pendeteksian tepi
Bab 8 pendeteksian tepiBab 8 pendeteksian tepi
Bab 8 pendeteksian tepi
Syafrizal
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
ohohervin
 
Modul 1 pengenalan matlab
Modul 1 pengenalan matlabModul 1 pengenalan matlab
Modul 1 pengenalan matlab
Devia Vhiea Vhienza
 
05c neural network-mlp
05c neural network-mlp05c neural network-mlp
05c neural network-mlp
rrahmad_14
 
Modul xiii dan xiv algo
Modul xiii dan xiv algoModul xiii dan xiv algo
Modul xiii dan xiv algo
STMIK AKAKOM
 
1 pengenalan matlab
1  pengenalan matlab1  pengenalan matlab
1 pengenalan matlab
Simon Patabang
 
Bab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijitalBab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijital
Syafrizal
 
Pengenalan pola sederhana dg perceptron
Pengenalan pola sederhana dg perceptronPengenalan pola sederhana dg perceptron
Pengenalan pola sederhana dg perceptron
Arief Fatchul Huda
 
2 pengenalan matlab
2 pengenalan matlab2 pengenalan matlab
2 pengenalan matlab
Simon Patabang
 
Analisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLABAnalisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLAB
Andry Saftiawan
 
Analisis algoritma
Analisis algoritmaAnalisis algoritma
Analisis algoritma
Jayner Wennyi
 
Pengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLABPengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLAB
Simesterious TheMaster
 

What's hot (20)

LN s04-machine vision-s2
LN s04-machine vision-s2LN s04-machine vision-s2
LN s04-machine vision-s2
 
Tugas mandiri pengolahan citra digital
Tugas mandiri pengolahan citra digitalTugas mandiri pengolahan citra digital
Tugas mandiri pengolahan citra digital
 
Laporan Matlab
Laporan MatlabLaporan Matlab
Laporan Matlab
 
Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02
 
Pengenalan Matlab
Pengenalan MatlabPengenalan Matlab
Pengenalan Matlab
 
Bab 8 pendeteksian tepi
Bab 8 pendeteksian tepiBab 8 pendeteksian tepi
Bab 8 pendeteksian tepi
 
Pcd 5
Pcd 5Pcd 5
Pcd 5
 
Jeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma SortingJeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma Sorting
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
Modul 1 pengenalan matlab
Modul 1 pengenalan matlabModul 1 pengenalan matlab
Modul 1 pengenalan matlab
 
05c neural network-mlp
05c neural network-mlp05c neural network-mlp
05c neural network-mlp
 
Modul xiii dan xiv algo
Modul xiii dan xiv algoModul xiii dan xiv algo
Modul xiii dan xiv algo
 
1 pengenalan matlab
1  pengenalan matlab1  pengenalan matlab
1 pengenalan matlab
 
Bab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijitalBab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijital
 
Pengenalan pola sederhana dg perceptron
Pengenalan pola sederhana dg perceptronPengenalan pola sederhana dg perceptron
Pengenalan pola sederhana dg perceptron
 
2 pengenalan matlab
2 pengenalan matlab2 pengenalan matlab
2 pengenalan matlab
 
Analisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLABAnalisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLAB
 
Analisis algoritma
Analisis algoritmaAnalisis algoritma
Analisis algoritma
 
Pengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLABPengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLAB
 
Dasar matlab
Dasar matlabDasar matlab
Dasar matlab
 

Similar to Bab i1 kohonen (recovered)

backpropagation
backpropagationbackpropagation
backpropagation
KikiRezkiLestari1
 
James philip montolalu 13021106048
James philip montolalu   13021106048James philip montolalu   13021106048
James philip montolalu 13021106048
James Montolalu
 
klastering-k-means-untuk-penentuan-nilai-ujian
klastering-k-means-untuk-penentuan-nilai-ujianklastering-k-means-untuk-penentuan-nilai-ujian
klastering-k-means-untuk-penentuan-nilai-ujian
Anam Syamsul
 
Software Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarSoftware Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarPrandita Sega
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
Icha Dicaprio
 
scikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data sciencescikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data science
softscients
 
Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdf
gunturwijaya7
 
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-b
tribudi20
 
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Tri Budi Santoso
 
Dw 9-intelijensi buatan
Dw 9-intelijensi buatanDw 9-intelijensi buatan
Dw 9-intelijensi buatanDian Sari
 
Machine Learning Diskusi 7.pdf
Machine Learning Diskusi 7.pdfMachine Learning Diskusi 7.pdf
Machine Learning Diskusi 7.pdf
HendroGunawan8
 
Modul iii dan iv algo
Modul iii dan iv algoModul iii dan iv algo
Modul iii dan iv algo
STMIK AKAKOM
 
Algoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.pptAlgoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.ppt
ELDONIMOSUL1
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
Torang Aritonang
 
penjelasan metode kohonen(SOM) & LVQ.pptx
penjelasan metode kohonen(SOM) & LVQ.pptxpenjelasan metode kohonen(SOM) & LVQ.pptx
penjelasan metode kohonen(SOM) & LVQ.pptx
ZulhamAriyandi1
 
Operasi dasar matlab job 1
Operasi dasar matlab job 1Operasi dasar matlab job 1
Operasi dasar matlab job 1
Polytechnic State Semarang
 
Andrew hidayat 101703-id-none
 Andrew hidayat   101703-id-none Andrew hidayat   101703-id-none
Andrew hidayat 101703-id-none
Andrew Hidayat
 
Tutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesiaTutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesia
zn Yedhi
 
Tutorial matlab .pdf
Tutorial matlab .pdfTutorial matlab .pdf
Tutorial matlab .pdf
Hening Prasetya
 
Tutorial matlab libre
Tutorial matlab libreTutorial matlab libre
Tutorial matlab libreDoni Rahman
 

Similar to Bab i1 kohonen (recovered) (20)

backpropagation
backpropagationbackpropagation
backpropagation
 
James philip montolalu 13021106048
James philip montolalu   13021106048James philip montolalu   13021106048
James philip montolalu 13021106048
 
klastering-k-means-untuk-penentuan-nilai-ujian
klastering-k-means-untuk-penentuan-nilai-ujianklastering-k-means-untuk-penentuan-nilai-ujian
klastering-k-means-untuk-penentuan-nilai-ujian
 
Software Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarSoftware Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses Belajar
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
scikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data sciencescikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data science
 
Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdf
 
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-b
 
Buku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-bBuku speech processing_subp_pengkodean-sinyal-wicara-b
Buku speech processing_subp_pengkodean-sinyal-wicara-b
 
Dw 9-intelijensi buatan
Dw 9-intelijensi buatanDw 9-intelijensi buatan
Dw 9-intelijensi buatan
 
Machine Learning Diskusi 7.pdf
Machine Learning Diskusi 7.pdfMachine Learning Diskusi 7.pdf
Machine Learning Diskusi 7.pdf
 
Modul iii dan iv algo
Modul iii dan iv algoModul iii dan iv algo
Modul iii dan iv algo
 
Algoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.pptAlgoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.ppt
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
 
penjelasan metode kohonen(SOM) & LVQ.pptx
penjelasan metode kohonen(SOM) & LVQ.pptxpenjelasan metode kohonen(SOM) & LVQ.pptx
penjelasan metode kohonen(SOM) & LVQ.pptx
 
Operasi dasar matlab job 1
Operasi dasar matlab job 1Operasi dasar matlab job 1
Operasi dasar matlab job 1
 
Andrew hidayat 101703-id-none
 Andrew hidayat   101703-id-none Andrew hidayat   101703-id-none
Andrew hidayat 101703-id-none
 
Tutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesiaTutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesia
 
Tutorial matlab .pdf
Tutorial matlab .pdfTutorial matlab .pdf
Tutorial matlab .pdf
 
Tutorial matlab libre
Tutorial matlab libreTutorial matlab libre
Tutorial matlab libre
 

Bab i1 kohonen (recovered)

  • 1. BAB I PENDAHULUAN 1.1 Latar Belakang Clustering merupakan suatu proses untuk mengelompokkan kumpulan objek-objek fisik atau objek-objek abstrak ke dalam kelas-kelas objek yang similar (mirip). Cluster adalah kumpulan dari objek atau data yang mempunyai kemiripan satu dengan yang lain dalam cluster yang sama dan tidak mirip dengan objek dalam cluster yang berbeda. Secara prinsip cluster merupakan kumpulan dari objek data yang mempunyai kemiripan berdasarkan karakteristik tertentu (karakteristik disini bisa kombinasi dari atribut tertentu tergantung user) kemudian melakukan pengelompokan jika dianggap mirip. Suatu cluster dari objek data dapat diperlakukan secara kolektif sebagai satu group dalam berbagai aplikasi. Terdapat beberapa algoritma yang digunakan didalam mengumpulkan atau mengelompokan suatu data sehingga didalam setiap object dalam satu kelompok data mirip akan tetapi tidak mirip dengan kelompok yang lainnya. Algoritma clustering yang meliputi K-Means, K-Medoids, DBSCAN dan lainnya yang digunakan didalam menyelesaikan permaslahan pengelompokan data 1.2 Tujuan Adapun tujuan dari pembuatan aplikasi Datamining dengan menggunakan metode Kohonen yaitu antara lain: 1.3 Manfaat
  • 2. BAB II LANDASAN TEORI 2.1 Kohonen Kohonen adalah merupakan algoritma jaringan pcerdas dengan kategori pembelajaran secara kompetitif dan bersifat unsupervised. Sistem secara otomatis dapatmelakukan pengelompokan atau klasifikasi tanpamenggunakan pembelajaran dengan pasangan dataterlebih dahulu.Secara umum, pembaruan nilai bobot adalahberdasar nilai jarak terkecil dari bobot terhadap nilai datamasukan. Pembaruan dilakukan hanya pada bobot yang berhubungan dengan node yang terdekat Gambar 1.1 Arsitektur Jaringan Kohonen SOM Seperti yang diperlihatkan dalam gambar diatas dimisalkan bahwa terdapat 2 unit input ( P1 dan P2), yang akan dibentuk kedalam 3 cluster neuron lapisan output (Y1, Y2, dan Y3). Selanjutnya neuron-neuron tersebut akan memperbaiki bobotnya masing-masing, sebagai bobot Wij.Dalam hal ini, bobot Wij mengandung pengertian bobot yang menghubungkan neuron ke-j pada lapisan input menuju neuron ke-i pada lapisan output. 2.2 Algoritma Kohonen Berikut merupakan langkah langkah yang ddilakukan untuk jaringan Kohonen 1. Langkah 1 Inisialisasi bobot Wij, Tetapkan parameter cluster (m) dan parameter laju pelatihan (∝). 2. Langkah 2 Selama syarat berhenti salah, lakukan langkah-langkah dibawah ini: Step 1 Untuk setiap Vector masukan X, lakukan beberapa langkah dibawah ini: i. Untuk setiap j hitunglah .
  • 3. ii. Cari indeks j sedemikian sehingga D(j) minimum. iii. Untuk semua unit j didalam ketetanggaan j, dan untuk semua I, hitunglah: Step 2 Perbarui laju belajar. Step 3 Kurangi jari-jari ketetanggaan topologis dengan pencacahan tertentu. Step 4 Uji syarat berhenti. Bila benar, maka berhenti.
  • 4. BAB III PEMBAHASAN DAN ANALISA Program berikut merupakan program SOM Kohonen dengan menggunakan MATLAB. Selama proses pembelajaran (clustering) jarak tetangga yang digunakan juga menurun. Nilai bobot wij ditentukan secara random. Berikut adalah algoritma pembelajaran metode SOM Kohonen (Fausset, 1993). 3.1 Algoritma Pembelajaran 1. Langkah 0 : - Inisialisasi bobot wij. Berikut merupakan sintaks inisialisasi bobot pada MATLAB menggunakan fungsi random. - Inisialisasi radius ketetanggaan σ. Berikut merupakan sintaks inisialisasi radius pada MATLAB - Set parameter topological neighbourhood - Set parameter laju pembelajaran α. 2. Langkah 1 : Jika syarat berhenti tidak dipenuhi (Salah), Kerjakan langkah 2 – 8 function [a,w] = som(x, n, tmax, seed) % SOM Kohonen's two-dimensional Self-Organizing Map % A = SOM(X, N, TMAX) returns an N-by-N matrix A of output nodes % learned as an unsupervised map from input vectors X, using Kohonen's % Self-Oganizing Map algorithm. Matrix A contains indices of X. TMAX % is the number of time steps to to run. Empirically-determined % learning parameters are hard-coded in the source code and can be % modified. % % [A,W] = SOM(X, N, TMAX) also returns the N^2 weights on A. % % SOM(X, N, TMAX, SEED) supports seeding the random-number
  • 5. % generator for reproducible results. % % See also SOMLEARN, PLOT_NODES. % learning parameters MU_I = 0.5; % learning rate: initial MU_F = 0.1; % : final SIGMA_I = 3.0e0; % attraction between points : initial SIGMA_F = 1.0e-1; % : final % seed random-number generator if specified if nargin > 7 rand('state', seed) end % set up NxN grid [o(:,1), o(:,2)] = ind2sub([n n], 1:n^2); % create random initial weights w = rand(n^2, size(x,2)); % run SOM learning for specified number of steps for t = 1:tmax w = somlearn(w, o, x, MU_I, MU_F, SIGMA_I, SIGMA_F, t, tmax); end % return grid of input indices a = zeros(n,n); for i = 1:size(o,1) j = o(i,1); k = o(i,2); a(j,k) = index_of_closest(w(i,:), x); end Kode Program 3.1 Inisialisasi Nilai
  • 6. 3. Langkah 2 : Untuk setiap input vektor x , kerjakan langkah 3 – 5. Berikut merupakan sintaks yang akan secara random memilih sebuah input vektor x. % randomly choose an input vector x x_pick = pickrand(x); Kode Program 3.2 Memilih Input Vektor x Secara Random Sintaks tersebut akan memanggil fungsi pickrand (x) seperti berikut: function obj = pickrand(objs) % OBJ = PICKRAND(OBJS) returns a random object OBJ from a vector or cell % array OBJS of objects. If OBJS is a matrix, PICKRAND returns a random % row from the matrix. i = randindex(objs); if size(objs, 1) > 1 obj = objs(i,:); else obj = objs(i); end Kode Program 3.3 Fungsi pickrand(objs) Sintaks tersebut akan memanggil fungsi randindex(objs) seperti berikut: function i = randindex(objs) % I = RANDINDEX(OBJS) returns a random index into a vector or cell % array OBJS of objects. If OBJS is a matrix, RANDINDEX returns a random % row index from the matrix. if size(objs, 1) > 1 i = 1+fix(rand*size(objs,1)); else i = 1+fix(rand*length(objs)); end Kode Program 3.4 Fungsi randindex(objs)
  • 7. 4. Langkah 3 : Untuk setiap indeks j, hitung jarak antara input dengan bobot atau D(j) function d = eucdist(x, y) % D = EUCDIST(X, Y) returns Euclidean distance between vectors X and Y. d = mag(x-y); Kode Program 3.5 Menghitung Jarak 5. Langkah 4 : Cari unit pemenang (indeks J), yaitu unit yang memiliki nilai D(j) minimum. % determine the winning output node i closest to x i = index_of_closest(x_pick, w); Kode Program 3.6 Mencari Unit Pemenang Berikut merupakan fungsi index_of_closest function i = index_of_closest(x, w) % I = INDEX_OF_CLOSEST(X, W) takes length-N vector X nad MxN matrix W % and returns row I of W closest to X. [ignore, i] = closest(x, w); Kode Program 3.7 Fungsi index_of_closest Sintaks tersebut akan memanggil fungsi closest seperti berikut: function [y, i] = closest(x, ys) % [Y, I] = CLOSEST(X, YS) returns point Y and index I of closest point in % YS to X. xs = repmat(x, size(ys, 1), 1); d = eucdist(xs, ys); s = sum(d, 2); [ignore, i] = min(s); y = ys(i,:); Kode Program 3.8 Fungsi closest
  • 8. 6. Langkah 5: Hitung semua nilai Wij (baru) dengan nilai J dari langkah 4. Wij (baru) = Wij lamaαXi - Wij lama % update weights and track weight changes w = update_weights(w, u, x_pick, i, t, tmax, mu_i, mu_f, sigma_i, sigma_f); Kode Program 3.9 Update Nilai Bobot Berikut merupakan fungsi update_weights function w = update_weights(w, u, x_pick, i, t, tmax, ... mu_i, mu_f, sigma_i, sigma_f) % UPDATE_WEIGHTS Update weights for Kohonen's Self-Organizing Map. % Generally this function should not be called directly, but is called % automatically by SOMLEARN. See SOMLEARN for an explanation of the % parameters. % scale learning paramters by elapsed time tfrac = t / tmax; mu = scale(mu_i, mu_f, tfrac); sigma = scale(sigma_i, sigma_f, tfrac); % udpate the weights, tracking mean weight change for k = 1:size(w, 1) aleph = exp(-sum((u(i,:)-u(k,:)).^2) / (2*sigma^2)); dw = mu * aleph * (x_pick - w(k,:)); w(k,:) = w(k,:) + dw; end Kode Program 3.10 Fungsi Update Weights 7. Langkah 6 : Ubah (update) nilai laju pembelajaran. 8. Langkah 7 : Kurangi radius tetangga pada waktu tertentu. 9. Langkah 8 : Periksa syarat berhenti.
  • 9. Berikut merupakan tampilan uji coba program. Misalkan kita menggunakan node ring. Untuk memanggil program, gunakan sintaks somdemo(@nicering, 200). 200 merupakan nilai threshold. Gambar Node ring Berikut tampilan program setelah di-run Gambar Node Ring setelah di-run