Self Organizing Map (SOM) Menggunakan RStudio dan Package Kohonen

Dea Ratu Nursidah
4 min readJul 23, 2021

--

hallo teman-teman semua

Kali ini saya mau membahas mengenai Self Organizing Map atau SOM. ada yang tau SOM itu apa? yuk kita bahas.

Self Organizing Map (SOM)atau sering disebut topology-preserving map pertama kali diperkenalkan oleh Teuvo Kohonen pada tahun 1996. SOM merupakan salah satu teknik dalam Neural Network yang bertujuan untuk melakukan visualisasi data dengan cara mengurangi dimensi data melalui penggunaan self-organizing neural networks sehingga manusia dapat mengerti high-dimensional data yang dipetakan dalam bentuk low-dimensional data. Metode pembelajaran yang digunakan SOM adalah tanpa bimbingan dari suatu data input-target atau unsupervised learning yang mengasumsikan sebuah topologi yang terstruktur menjadian unit-unit kelas/cluster (Kohonen, 1989 dan Fausett, 1993).

Pada algoritma SOM, vektor bobot untuk setiap unit cluster berfungsi sebagai contoh dari input pola yang terkait dengan cluster itu. Selama proses self-organizing, cluster satuan yang bobotnya sesuai dengan pola vektor input yang paling dekat (biasanya, kuadrat dari jarak Euclidean minimum) dipilih sebagai pemenang. Unit pemenang dan unit tetangganya (dalam pengertian topologi dari unit cluster ) terus memperbarui bobot merek (Fausett, 1993). Setiap output akan bereaksi terhadap pola input tertentu sehingga hasil Kohonen SOM akan menunjukkan adanya kesamaan ciri antar anggota dalam cluster yang sama.

Data

Data yang digunakan dalam artikel ini yaitu data mengenai sumber air minum masyarakat di provinsi Jawa Barat yang terdiri dari 9 variabel yaitu :kabupaten/kota, ledeng, pompa, air dalam kemasan, sumur terlindung, sumur tak terlindung, mata air terlindung, mata air tak terlindung, dan air permukaan.

Langkah-langkah SOM

Langkah pertama yaitu melakukan instalasi package kohonen dan mengaktifkan package tersebut setelah itu melihat komponen yang terdapat pada package tersebut.

install.packages("kohonen")
library(kohonen)
search()
ls(2)

Pada package kohonen terdapat 14 komponen salah satunya adalah som.

Input data yang akan digunakan menggunakan syntax sebagai berikut:

datasom <- read.delim("clipboard")
head(datasom)

Selanjutnya akan dilakukan analisis deskriptif dari data yang akan digunakan.

Pada analisis deskriptif diperoleh bahwa setiap data memiliki nilai minimum, maximum, mean, median, 1st Quartil, dan 3rd Quartil. kemudian akan dilakukan standarisasi data menggunakan syntax sebagai berikut:

som <- datasom[-1]
scale(som)
head(scale(som))
dim(som)

Output disamping merupakan hasil dari standarisasi data dimana data memiliki dimensi 8 variabel dengan jumlah data sebanyak 27.

Langkah selanjutnya membuat peta letak data yang akan digunakan dibuat sebanyak 4 dimensi (x) dan 4 dimensi (y) dengan topologi hexagonal, dengan menggunakan syntax sebagai berikut:

grid=somgrid(xdim=4,ydim=4,topo="hexagonal")
grid
som.jabar=som(scale(som),grid=somgrid(xdim=4,ydim=4,"hexagonal"))
str(som.jabar)
plot(som.jabar,type="mapping")

Dapat dilihat letak data-data, dimana dimensi dari letak gambar yang dibuat 4x4 = 16, data sudah terkumpul pada masing-masing lingkaran.

Selanjutnya akan dibuat syntax untuk melihat letak lingkaran yang berisi objek.

som.jabar$grid$pts
som.jabar$unit.classif
plot(som.jabar)
text(som.jabar$grid$pts,labels=som.jabar$unit.classif,cex=1.5)

Dari plot disamping , 8 variabel tidak sama sekali direduksi dimana gradasi warna menunjukkan 8 variabel sumber air minum , dimana didalam lingkaran terdapat seperti diagram venn yang mewakili objek-objek. Dapat dilihat juga nilai kandungan pada 8 faktor tersebut besar atau kecil dengan diagram venn yang ada.

Langkah selanjutnya yaitu membuat klasterisasi menggunakan codes struktur menggunakan syntax sebagai berikut:

str(som.jabar)
som.jabar$codes[[1]]
dist(som.jabar$codes[[1]])
hclust(dist(som.jabar$codes[[1]]))

Berdasarkan hasil pengelompokkan, metode yang digunakan yaitu complete dimana distance yaitu euclidean dengan obyek sebanyak 16 atau 16 lingkaran.

Selanjutnya akan dibuat kelompok yang akan digunakan sebanyak 4 kelompok menggunakan syntax sebagai berikut:

peta=cutree(hclust(dist(som.jabar$codes[[1]])),4)
plot(peta)
plot(som.jabar,type="codes",bgcol=rainbow(4)[peta])
add.cluster.boundaries(som.jabar,peta)

Berdasarkan plot diatas diketahui bahwa cluster 1 terdiri dari 4 lingkaran, cluster 2 terdiri dari 4 lingkaran, cluster 3 terdiri dari 1 lingkaran, dan cluster 4 terdiri dari 7 lingkaran.

Gambar diatas merupakan hasil clustering wilayah kabupaten/kota di Provinsi Jawa Barat berdasarkan sumber air minum dengan menggunakan algoritma Self Organizing Map (SOM). Didapatkan lingkaran berwarna hijau tosca yang merupakan cluster 1 dengan anggota sebanyak 4 , cluster 2 dengan warna ungu sebanyak 4 anggota, cluster 3 dengan warna hijau sebanyak 1 anggota, dan cluster 4 dengan warna merah sebanyak 7 anggota.

Kesimpulan :

Berdasarkan percobaan yang telah dilakukan diatas yaitu diperoleh 16 kelompok/cluster dari 27 data sumber air minum di provinsi Jawa Barat dengan 8 variabel, dimana dikelompokkan kedalam bidang datar tanpa menghilangkan atribut didalamnya dan dapat mengetahui dimana letak objek di dalam lingkaran.

Nah, itu dia pembahasan mengenai Self Organizing Map (SOM) menggunakan Rstudio. Semoga bermanfaat ya buat temen-temen semua.

Referensi

--

--