Self Organizing Map (SOM) with Library Kohonen — R Studio

Nadia Fitriana Dewi
5 min readJul 9, 2020

--

Assalamualaikum Wr. Wb. Temans!

Halo! Hari ini aku mau berbagi ilmu tentang Self Organizing Maps (SOM). Nah, sebelumnya temans udah pada tau belum apa itu SOM? Yapp, bener SOM merupakan visualisasi peta yang dapat mengorganisir dengan sendirinya, di mana pengertiannya sangat mirip teknik clustering. Ternyata memang benar, bahwa SOM adalah versi deep learning untuk clustering itu sendiri.

Gimana Cara Kerja SOM?

Sama seperti teknik unsupervised yang lain, maka kita tidak perlu memberikan label kepada training set. Lebih jelasnya, pada teknik unsupervised seperti SOM, kita belum tahu tujuannya (belum mengerti label datanya)

Kita hanya memberikan data kepada algoritma SOM sebanyak mungkin dan menentukan ukuran peta (jumlah nodes atau neurons) yang ingin dibuat. Setelah itu, biarkan SOM mengelompokkan sendiri data-data tersebut ke dalam beberapa cluster besar.

Teknik unsupervised ini sangat cocok bagi kita yang benar-benar blank (tidak tahu sama sekali) insights dari dataset kita. Teknik seperti ini digunakan ketika kita memiliki data yang berukuran sangat besar (big data), dan kita ingin bisa membaca dan mengerti makna (hubungan-hubungan yang terkandung di dalam datanya) dalam waktu yang cepat dan akurat.

Berbeda dengan teknik clustering lainnya di dalam domain machine learning, SOM bekerja melalui neural networks layaknya seperti ANN, CNN, dan RNN (namun tanpa hidden layers). Yuk langsung ke tutorial nya aja ya!

Data

Untuk data yang digunakan itu bebas ya temans. Kali ini, data yang digunakan adalah data pengukuran impedansi listrik pada sampel jaringan yang baru dikeluarkan dari payudara. Dataset ini memiliki jumlah sebanyak 106 data dengan 9 atribut yaitu:

  1. I0: Impedivitas (ohm) pada frekuensi nol
  2. PA500: Sudut fase pada 500 KHz
  3. HFS: Kemiringan frekuensi tinggi dari sudut fase
  4. DA: Jarak impedansi antara ujung spektral
  5. AREA: Area dalam spektrum
  6. A / DA: Area dinormalisasi oleh DA
  7. MAX IP: Spektrum maksimum
  8. DR: Jarak antara I0 dan bagian nyata dari titik frekuensi maksimum
  9. P: Panjang kurva spektral

Library

Untuk mendukung analisis SOM di R bisa install package berikut:

install.packages(“kohonen”)#setelah install bisa langsung panggil package tersebut
library(kohonen)
search()
ls(2)

Deskriptif Data

Analisis Self Organizing Maps

#tempat peta letak nya yaitu 5x5
grid<- somgrid(xdim = 5, ydim = 5, topo = "hexagonal")
some.breast<- som(scale(breast), grid = somgrid(xdim = 5, ydim = 5, "hexagonal"))
str(some.breast)
#bentuk plot data tersebut
plot(some.breast, type = "mapping")

Karena peneliti ingin menggunakan dimensi 5x5 maka jumlah plot yang terbentuk yaitu sebanyak 25 dengan pengklasifikasian bahwa data sudah terkumpul pada masing-masing lingkaran. Tetapi pada plot tersebut belum terdapat objek di dalamnya dan masih belum diketahui klasifikasi objeknya di mulai dari lingkaran sebelah mana. Maka dari itu, kita lanjut untuk menentukan gambaran objek nya ya temans..

Dari hasil gambar di atas letak lingkaran awal 1 hingga 25 dapat dilihat dari nilai sumbu x dan sumbu y. Pada klasifikasi objek dapat dilihat objek ke berapa yang masuk ke dalam lingkaran. Misalnya, objek nomer 1 masuk pada lingkaran 13, objek nomer 37 masuk pada lingkaran 1, objek 60 masuk pada lingkaran 11. Kemudian lanjut untuk melihat plot keseluruh dengan objek yang sudah ter-kluster ke dalam lingkaran.

Lanjut untuk membuat klasterisasi menggunakan codes struktur data breast seperti pada perintah berikut:

str(some.breast)

Ada sebanyak 25 nilai dari 9 atribut, pengelompokan berdasarkan nilai codes diatas

Berikut merupakan hasil jarak antar objek 1 dengan lainnya dengan menggunakan euclidean distance, dimana nilai jarak pada objek dirinya sendiri maka bernilai 0 artinya tidak ada jarak.

Ini adalah hasil dari hierarki klaster dengan metode complete dengan jumlah objek sebanyak 25 atau 25 lingkaran. Kemudian akan di buat kelompok yaitu sebanyak 5 kelompok dengan menggunakan perintah berikut:

peta <- cutree(hclust(dist(some.breast$codes[[1]])), 5)
plot(peta)
plot(some.breast, type = "codes", bgcol = rainbow(5)[peta])
add.cluster.boundaries(some.breast, peta)

Dari plot peta keseluruhan dapat diketahui bahwa kelompok pertama berisi 7 dengan lingkaran yang berwarna biru, kelompok kedua berisi 10 dengan lingkaran berwarna merah, kelompok ketiga berisi 3 dengan lingkaran berwarna ungu, kelompok keempat berisi 4 dengan lingkaran berwarna hijau muda, dan kelompok kelima berisi 1 dengan lingkaran berwarna hijau tua.

Kesimpulan

Hasil ini dapat berbeda antara komputer 1 dan lainnya karena pengelompokkan ini terpilih secara random dimana nantinya lingkaran dengan nilai paling tinggi akan masuk pertama kali dan akan menarik lainnya. Untuk lebih jelasnya pada plot ini terdapat garis berdasarkan hierarki clustering, dimana warna 1 dan warna lainnya terdapat garis pembatas misalnya wara biru sudah terkelompok menjadi 1 begitupun seterusnya.

Gimana nih temans? Sudah mengerti kan gimana cara kerja SOM itu sendiri.. Semoga pembahasan kali ini bermanfaat bagi temans semua yaa!:)

See u in next article.

Wassalamualaikum Wr. Wb.

--

--