Makalah membahas tentang Kohohenen pada DAta mining
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
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
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
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
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
Kohonen adalah merupakan algoritma jaringan pcerdas dengan kategori pembelajaran secara kompetitif
Perbandingan algoritma brute force , divide and conquerohohervin
comparing brute force algorithms, divide and conquer algorithm, and decrease and conquer algorithms.
advantage and weakness each algorithm
indonesian version.
Perbandingan algoritma brute force , divide and conquerohohervin
comparing brute force algorithms, divide and conquer algorithm, and decrease and conquer algorithms.
advantage and weakness each algorithm
indonesian version.
Apa Itu Efisiensi Algoritma ?
Algoritma yang dapat dikatakan sebagai algoritma yang efisien, merupakan algoritma yang dimana pada saat pemrosesan algoritma tersebut tidak memakan banyak waktu dan juga ditak memakan banyak memori dalam pemrosesannya.
Seperti yang sudah di jelaskan, efisiensi algoritma umumnya di tinjau dari 2 hal, yaitu efisiensi terhadap waktu, dan efisiensi terhadap memori.
Walaupun algoritma yang memberikan keluaran yang benar (paling mendekati kenyataan), tetapi jika harus menunggu berjam-jam atau mungkin berhari-hari untuk mendapatkan outputannya (dalam hal ini yang dimaksudkan adalah efisiensi dalam waktu), algoritma tersebut biasanya tidak akan dipakai. Kebanyakan orang lebih menginignkan algoritma yang memiliki pengeluaran atau hasil outputan yang lebih cepat. Waktu yang diperlukan (running time) oleh sebuah algoritma cenderung tergantung pada jumlah input yang diproses.
Running time dari sebuah algoritma adalah fungsi dari jumlah inputnya. Running time dari suatu algoritma berbeda-beda bergantung pada input yang diberikan. Dengan demikian pengukurannya dihitung sebagai fungsi dari besarnya input yang diberikan.
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