Algoritma SOM (Self Organizing Maps) 2


Algoritma SOM (Self Organizing Maps) adalah salah satu algoritma berbasis jaringan saraf yang dapat digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah mengenai penentuan penerimaan pengajuan kredit sepeda motor baru berdasarkan kelompok data yang sudah ada.
Inti perhitungan pada algoritma berbasis jaringan adalah untuk mencari bobot terbaik dari contoh / sampel data yang sudah ada. Karena hasil pada contoh data sudah diketahui, maka nilai bobot akan dihitung berdasarkan nilai hasil yang sudah tersedia, sampai ditemukan nilai bobot terbaik yang paling banyak cocok apabila dihitungkan kembali pada data awal. Kemudian nilai bobot tersebut dapat digunakan untuk menghitung data lain yang tidak diketahui hasilnya. Pada kasus ini, metode yang digunakan untuk mencari bobot terbaik adalah menggunakan metode PSO (Particle Swarm Optimization)
Berbeda dengan algoritma berbasis jaringan saraf sebelumnya yang hasil output pada contoh datanya sudah diketahui, algoritma ini tidak memerlukan nilai output pada data yang akan dipelajari, dan teknik ini dinamakan unsupervised learning. Algoritma ini akan menghasilkan representasi dari data input dengan dimensi rendah (biasanya 2 dimensi) kedalam sebuah ruang yang biasa disebut map. Jika algoritma berbasis jaringan saraf lainnya menggunakan teknik koreksi nilai kesalahan untuk mencocockan data dengan hasil akhir, maka algoritma ini menggunakan sistem saraf pusat dan melakukan update bobot pada saraf disekitar saraf pusat.



Diasumsikan ada 20 orang siswa, yaitu siswa A sampai dengan T
Masing-masing siswa memiliki rata-rata nilai IPA, IPS, dan Bahasa yang berbeda-beda
Diasumsikan data awal nilai siswa adalah sebagai berikut

Nama Siswa Nilai IPA Nilai IPS Nilai Bahasa
Siswa A 50 60 70
Siswa B 65 80 73
Siswa C 72 70 65
Siswa D 83 65 80
Siswa E 40 82 73
Siswa F 95 71 85
Siswa G 60 74 96
Siswa H 75 75 92
Siswa I 83 55 70
Siswa J 91 60 65
Siswa K 92 91 55
Siswa L 76 80 59
Siswa M 75 65 74
Siswa N 74 76 89
Siswa O 63 79 69
Siswa P 58 93 76
Siswa Q 82 50 80
Siswa R 81 65 88
Siswa S 76 74 70
Siswa T 77 71 55

Contoh data siswa adalah sebagai berikut:



Sebelum masuk kedalam langkah-langkah pembahasan algoritma, ada beberapa konstanta atau parameter yang harus diketahui, yaitu:
* Tentukan dimensi, yaitu jumlah bobot yang digunakan dalam masing-masing data
Diasumsikan dalam kasus ini, digunakan 3 buah bobot sesuai kolom kriteria yaitu jurusan IPA, jurusan IPS, jurusan Bahasa

* Tentukan ukuran map yang akan digunakan dalam pemetaan
Diasumsikan dalam kasus ini akan digunakan peta dengan ukuran 10 satuan

* Tentukan batas kesalahan minimal yang digunakan
Jika nilai kesalahan sudah lebih rendah dari batas kesalahan minimal ini, maka perhitungan akan dihentikan
Diasumsikan dalam kasus ini akan digunakan angka 0.00001 sebagai batas kesalahan minimal


Langkah-langkah penggunaan algoritma ini adalah

1. Lakukan inisialisasi map dan bobot yang digunakan

* Skrip tersebut akan melakukan inisialisasi pada Class Map. Class ini berisi tentang variabel dan fungsi-fungsi yang digunakan untuk melakukan dekomposisi. Deklarasi Class Map adalah sebagai berikut:

2. Lakukan proses pengelompokan data menggunakan algoritma ini
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini (poin 2a – 2c)

Memasuki proses perhitungan pada fungsi prosesPerhitungan

2a. Lakukan proses penampungan data ke dalam variabel lokal

2b. Lakukan normalisasi input jika diperlukan
Dalam kasus ini setiap data akan dibagi dengan jumlah dari setiap kolom

2c. Lakukan proses perhitungan selama ditemukan nilai kesalahan yang lebih dari nilai batas kesalahan minimal (poin 2c1 – 2c3)

2c1. Masukkan semua data input sebagai data latih

2c2. Lakukan perhitungan sebanyak jumlah data input (poin 2c2a – 2c2e)

2c2a. Tentukan data input secara acak

2c2b. Hitung saraf output pemenang untuk input data ini
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

* Skrip tersebut akan melakukan inisialisasi pada Class Saraf. Class ini berisi tentang variabel dan fungsi-fungsi yang digunakan untuk melakukan dekomposisi. Deklarasi Class Saraf adalah sebagai berikut:

* Gunakan fungsi ini untuk mencari saraf output pemenang sebagai saraf pusat
Hitung jarak Euclidean antara data input dan bobot output
Kemudian cari saraf dengan nilai jarak paling minimal

2c2c. Lakukan perhitungan bobot pada masing-masing map
Gunakan saraf pemenang sebagai saraf inti, dan lakukan update bobot pada saraf disekitar saraf pemenang
Kemudian hitung nilai kesalahan dari bobot tersebut

* Gunakan fungsi ini untuk melakukan update nilai bobot pada saraf terpilih

2c2d. Tambahkan nilai kesalahan dengan rata-rata nilai kesalahan bobot tersebut.

2c2e. Hilangkan data input yang sudah dihitung agar tidak terpilih lagi

2c3. Langkah opsional: tulis nilai kesalahan setiap 100 kali perulangan


Hasil akhir adalah: (klik untuk perbesar gambar)

cmd147


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.


Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

2 pemikiran di “Algoritma SOM (Self Organizing Maps)

    • pip Penulis

      Mohon maaf saya tidak memiliki contoh implementasi dalam bahasa tersebut. Tetapi jika saya lihat kembali skrip maka seharusnya tidak ada masalah apabila dikonversi ke dalam bahasa lain karena tidak ada baris skrip yang bergantung pada perangkat lunak tertentu.