Contoh Clustering dengan Menggunakan Self-Organizing Map (SOM)

Postingan ini saya tulis untuk mendukung tugas akhir mata kuliah pemrosesan bahasa alami alias Natural Language Processing. Jadi di project ini kelompok kami berencana menerapkan metode pengelompokan atau clustering yaitu Self-Organizing Map (SOM). Noovster bisa mempelajari secara mendetail mengenai metode SOM ini di literatur lain atau tanya-tanya mbah Google. Saya sekarang secara teknik akan memberi contoh sederhana penerapan SOM dengan kasus data set yang kecil. Tools yang saya gunakan adalah MATLAB.

Pengelompokan/Clustering/Pengklusteran dengan SOM pada lima data dua dimensi.
Pada contoh ini akan dilakukan clustering lima buah data dengan jumlah dimensinya dua. Data set ditampilkan seperti pada tabel di bawah ini. Fitur yang digunakan adalah X dan Y. parameter yang digunakan : jumlah kelompok/cluster 3, jumlah iterasi pelatihan maksimum 5, laju pembelajarannya 0.5 dan akan menjadi 0.6 (fungsi pembelajaran) darinya pada iterasi berikutnya.

Data Set
Data ke-
X
Y
1
1
1
2
4
1
3
1
2
4
3
4
5
5
4

Langkah pertama adalah inisialisasi bobot. Karena jumlah fitur ada 2 dan jumlah kelompok/kluster yang ditentukan adalah 3, matriks bobot w berukuran 2x3. Secara acak, kita menggunakan bobot awal sebagai berikut:

Berikut saya lampirkan fail somtrain.m untuk pemroses utama dalam training clustering menggunakan metode SOM di program MATLAB. Ketik alamat ini untuk mengunduh failnya. http://q.gs/8344349/somtrain

Kode untuk pelatihan SOM dengan sintaks penggunaannya adalah sebagai berikut.

[Idx, w, C, D] = somtrain(X,C,Iterasi,lr,lf)

Fungsi tersebut digunakan untuk melakukan clustering set data X pada sejumlah kelompok/kluster C. penjelasan untuk parameter yang digunaka adalah sebagai berikut.
Parameter
Keterangan
X
X adalah matriks MxN. M menyatakan jumlah data, dan N menyatakan jumlah fitur.
C
Menyatakan jumlah kelompok/Cluster (neuron pemroses)
Iterasi
Jumlah maksimal iterasi, default = 100
lr
Laju pembelajaran (learning rate), default = 0.5
lf
Fungsi pembelajaran, default = 0.6
Idx
Matriks Mx1 yang menyatakan indeks kelompok. Setiap barisnya menyatakan kelompok yang diikuti data pada baris tersebut di matriks X. nilainya berturut-turut mulai dari 1,2,… sesuai dengan indeks kelompok.
w
Matriks NxC yang menyatakan bobot untuk setiap neuron (kelompok). N menyatakan jumlah fitur, dan C menyatakan jumlah neuron (kelompok).
D
Matriks MxC. Baris menyatakan data, dan kolom menyatakan jarak data ke neuron (kelompok).

Kemudian kita langsung ke MATLAB, ketikan kode berikut di dalam Command Window MATLAB. (ketik baris per baris, jangan langsung copas ya)




Berikur adalah output ans

Plot yang saya hasilkan


Sekian dulu, kalau ada pertanyaan silahkan di komentar. Kalau bisa pasti saya jawab, tapi kalo engga, ya saya jawab juga, 'Ga bisa.. maklum masih belajar! hhehe



Sumber Buku acuan : Data Mining Konsep dan Aplikasi menggunakan MATLAB
Sumber gambar ilustrasi clustering : www.ml.uni-saarland.de
Previous
Next Post »

1 comments:

Click here for comments
Unknown
admin
July 28, 2018 at 11:31 PM ×

saya butuh hitungan manualnya, boleh bantu saya ??

Congrats bro Unknown you got PERTAMAX...! hehehehe...
Reply
avatar
Thanks for your comment