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.
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:
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
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
1 comments:
Click here for commentssaya butuh hitungan manualnya, boleh bantu saya ??
ConversionConversion EmoticonEmoticon