Self-Organizing Map (SOM) Pada Pengelompokan Kabupaten/kota di Jawa Tengah

Freditasari Purwa Hidayat
5 min readJul 19, 2021

--

picture from diego.codes.com

Assalamualikum Wr. Wb.

Halo teman-teman Data Enthusiast…(^▽^)

Kali ini masih membahas seputar pengelompokan nih…

Ada yang tau tentang metode SOM?

Metode yang digunakan SOM adalah suatu data input-target atau unsupervised learning yang mengasumsikan sebuah topologi yang terstruktur menjadian unit-unit kelas/cluster.

Apa itu SOM?

SOM (Self Organizing Maps) 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.

SOM kerap kali disebut topology-preserving map. SOM pertama kali diperkenalkan oleh Teuvo Kohonen pada tahun 1996.

Pada algoritma SOM, vektor bobot untuk setiap unit cluster berfungsi sebagai contoh dari input pola yang terkait dengan cluster itu. Kemudian setiap output akan bereaksi terhadap pola input tertentu sehingga hasil Kohonen SOM akan menunjukkan adanya kesamaan ciri antar anggota dalamcluster yang sama.

Bagaimana struktur SOM?

SOM merupakan jaringan yang terdiri dari dua lapisan (layer), yaitu lapisan input dan lapisan output. Setiap neuron dalam lapisan input terhubung dengan setiap neuron pada lapisan output. Setiap neuron dalam lapisan output merepresentasikan kelas (cluster )dari input yang diberikan.

Source : https://www.sciencedirect.com/science/article/pii/S0048969718304005

Lanjut pada penerapan metode SOM, kali ini kita akan menggunakan data Kemiskinan yang meliputi variabel presentase penduduk miskin, IPM, AHH, dan TPT yang dapat diperoleh dari website BPS Provinsi Jawa Tengah.

#Input Data
data=read.delim("clipboard")
data
kemiskinan<- data[-1]
kemiskinan

Data disamping merupakan data kemiskinan di Jawa Tengah, kemudian membuat variabel kemiskinan dengan data[-1] yang artinya menghapus variabel kolom 1 yaitu kabupaten.

setelah berhasil menginput data, kemudian kita akan meihat ringkasan data tersebut seperti berikut.

#analisis deskriptif 
summary(kemiskinan)
ringkasan data

Dari hasil summary didapatkan nilai minimum, maksimum, kuartil 1, median, mean, dan kuartil 3. Kemudian, dilakukan standarisasi data degan syntax berikut.

#standarisasi data 
kemiskinan
scale(kemiskinan)
dim(kemiskinan)

Untuk melakukan pemetaan dengan som, terlebih dahulu melakukan standarisasi data. Diatas merupakan output dari standarisasi data. Setelah di standarisasi , diketahui data memiliki dimensi 4 variabel dan jumlah data sebesar 35.

Langkah selanjutnya, akan menentukan jumlah cluster menggunakan metode silhouette.

#Validasi cluster
library(factoextra)
fviz_nbclust(kemiskinan,kmeans,method="silhouette")

Berdasarkan grafik untuk menentukan jumlah cluster optimum menggunakan metode silhouette didapatkan hasil cluster optimum yaitu sebanyak 2.

Setelah didapatkan jumlah cluster, kemudian dilakukan klustering menggunakan SOM seperti berikut ini.

#algoritma SOM 
set.seed(1000)
library(kohonen)
grid <- somgrid(xdim=5, ydim=5, topo="hexagonal")
grid
som.kemiskinan <- som(scale(kemiskinan), grid=somgrid(5,5,"hexagonal"))
som.kemiskinan
str(som.kemiskinan)
plot(som.kemiskinan, type="mapping")
som.kemiskinan$grid$pts
som.kemiskinan$unit.classif
plot(som.kemiskinan)

Dari plot diatas, diketahui 4 variabel tidak ada yang tereduksi. Warna hijau melambangkan penduduk miskin, warna krem melambangkan AHH, warna kuning melambangkan IPM, dan warna putih melambangkan TPT. Dan pada masing -masing lingkaran diatas, menggambarkan 4 variabel yang ada pada setiap lingkaran atau objek pengelompokkan dari data.

Kemudian, kita dapat melihat letak hasil klasifikasi dengan syntax berikut:

Langkah selanjutnya, kita akan membuat hierarchical clustering.

hclust(dist(som.kemiskinan$codes[[1]]))

Dari hasil pengelompokkan dengan hierarchical clustering, metode yang digunakan adalah complete, dimana distance yaitu euclidean dengan obyek sebanyak 25atau 25 lingkaran.

Selanjutnya kita akan membuat beberapa kelompok dengan menggunakan perintah “cutree”. Misalnya kita ingin membuat 2kelompok karena terdapat kelompok spesies iris setosa, iris virginica, dan iris versicolor.

#hclust to 2 cluster
peta<-cutree(hclust(dist(som.kemiskinan$codes[[1]])),2)
peta
summary(peta)
#menampilkan plot
plot(peta)
plot(som.kemiskinan,type="codes",bgcol=rainbow(5)[peta])

Dari hasil output di atas diketahui bahwa kluster pertama terdiri dari 7 lingkaran, dan kluster kedua tediri dari 18 lingkaran .Sehingga sesuai dengan dimensi 5x5 yaitu 25 lingkaran . Kemudian hasil kluster berdasarkan mapping tsb, diberikan warna yakni warna rainbow. Seperti dengan plot dibawah.

Didapatkan sebuah model dengan program R berupa diagram kipas dari hasil analisis algoritma SOM. Peneliti menggunakan diagram kipas dengan tampilan hexagonal dengan grid berukuran 5 x 5. Diagram kipas merupakan ilustrasi dari distribusi variabel pemetaan. Pada diagram kipas di bawah terdapat 2 warna berbeda, yang menunjukkan hasil dari cluster setiap kabupaten di Provinsi Jaw tengah. Setiap warna pada diagram kipas memiliki karakteristik tersendiri yang berbeda-beda. Tampilan algoritma SOM dapat dilihat pada gambar dibawah.

Gambar diatas merupakan hasil clustering wilayah kabupaten/kota di Provinsi Jawa Tengah tahun 2020 berdasarkan faktor-faktor yang mempengaruhi kemiskinan menggunakan algoritma Self Organizing Map (SOM). Didapatkan lingkaran berwarna merah merupakan cluster 1 yang beranggotakan 25 kabupaten/kota, sedangkan lingkaran berwarna kuning merupakan cluster 2 yang beranggotakan 10 kabupaten/kota.

add.cluster.boundaries(som.kemiskinan,peta)
kelompok <- data.frame(id=data$Kabupaten,
cluster=peta[som.kemiskinan$unit.classif])
kelompok

Selanjutnya, membuat tabel yang berisi hasil clustering wilayah kabupaten di Povinsi Jawa Tengah, berdasarkan jumlah faktor yang mempengaruhi kemiskinan di Provinsi Jawa Tengah.

Hasil cluster SOM

Berdasarkan Tabel hasil cluster didapatkan bahwa, cluster 1 beranggotakan 108 kabupaten, sedangkan cluster 2 beranggotakan 10 kabupaten.

Pada profilisasi cluster dilakukan sebuah perhitungan rataan berdasarkan variabel pada setiap kabupaten yang sudah terbentuk cluster untuk mengetahui karakteristik/ciri khas dari masing-masing cluster pada pengelompokan kabupaten/kota di Provinsi Jawa Tengah berdasarkan faktor-faktor yang mempengaruhi kemiskinan.

profilisasi cluster

Dari tabel diatas dapat diketahui karakteristik yang menonjol pada setiap cluster yang terbentuk dengan warna kuning menunjukkan variabel penduduk miskin dan Tingkat Pengangguran Terbuka (TPT) yang rendah, sedangkan warna merah menunjukkan variabel Indeks Pembangunan Manusia (IPM) dan Angka Harapan Hidup yang tinggi. Terdapat dua kelompok pembagian dari seluruh kabupaten/kota di Jawa Tengah.:

1) Cluster 1 beranggotakan 25 kabupaten/kota di Provinsi Jawa Tengah merupakan daerah yang memiliki karakteristik variabel penduduk miskin dan TPT yang lebihh rendah dari clutser 2, sedangkan variabel AHH dan TPT yang lebih tinggi dari cluster 2.

2) Cluster 2 yang beranggotakan 10 kabupaten/kota merupakan daerah yang memiliki karakteristik variabel AHH dan IPM yang lebih rendah dari cluster 1, sedangkan variabel penduduk miskin dan TPT lebih tinggi dari cluster 1.

Jadi,,, cukup seperti itu guys langkah-langkahnya…..

Selamat mencoba sendiri ya!!(^人^)

Referensi:

--

--