I. Pendahuluan
A. Latar Belakang Self Organizing Maps (SOM) adalah metode jaringan saraf tiruan yang diperkenalkan oleh Teuvo Kohonen pada tahun 1982. SOM bekerja secara unsupervised learning dengan memetakan data berdimensi tinggi ke dalam ruang dua dimensi sambil mempertahankan struktur topologi data.
B. Data Dataset Iris terdiri dari 150 observasi dan 4 variabel: 1. Sepal Length 2. Sepal Width 3. Petal Length 4. Petal Width
II. Tahapan dan Hasil
knitr::include_graphics("gambar.png")
A. Input Data
iris_data <- iris[,1:4]
head(iris_data)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 5.1 3.5 1.4 0.2
## 2 4.9 3.0 1.4 0.2
## 3 4.7 3.2 1.3 0.2
## 4 4.6 3.1 1.5 0.2
## 5 5.0 3.6 1.4 0.2
## 6 5.4 3.9 1.7 0.4
B. Standardisasi Data
iris.sc <- scale(iris_data)
head(iris.sc)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## [1,] -0.8976739 1.01560199 -1.335752 -1.311052
## [2,] -1.1392005 -0.13153881 -1.335752 -1.311052
## [3,] -1.3807271 0.32731751 -1.392399 -1.311052
## [4,] -1.5014904 0.09788935 -1.279104 -1.311052
## [5,] -1.0184372 1.24503015 -1.335752 -1.311052
## [6,] -0.5353840 1.93331463 -1.165809 -1.048667
C. Training SOM
iris.grid <- somgrid(xdim = 10, ydim = 10, topo = "hexagonal", toroidal = TRUE)
set.seed(33)
iris.som <- som(iris.sc, grid = iris.grid, rlen = 700, alpha = c(0.05, 0.01), keep.data = TRUE)
summary(iris.som)
## SOM of size 10x10 with a hexagonaltoroidal topology and a bubble neighbourhood function.
## The number of data layers is 1.
## Distance measure(s) used: sumofsquares.
## Training data included: 150 objects.
## Mean distance to the closest unit in the map: 0.041.
Interpretasi :
Berdasarkan output diperoleh nilai Mean Distance to Closest Unit sebesar 0.041, model menunjukkan tingkat presisi yang baik dalam merepresentasikan data input; angka yang relatif rendah ini mengindikasikan bahwa unit-unit pada peta telah berhasil menyesuaikan bobotnya sehingga sangat mendekati karakteristik asli dari 150 objek yang dilatih, menghasilkan kuantisasi data yang akurat.
plot(iris.som, type = "changes")
Interpretasi :
Untuk Plot Training Progress : Berdasarkan grafik di atas, dapat diketahui bahwa proses pelatihan berlangsung selama 700 iterasi. Grafik tersebut menunjukkan nilai mean distance to closest unit (rata-rata jarak setiap data ke unit klaster terdekat) yang menurun seiring dengan bertambahnya jumlah iterasi. Pada iterasi ke-550, grafik mulai terlihat stabil, yang mengindikasikan bahwa proses pelatihan menggunakan metode SOM telah mencapai titik konvergensi atau stabilitas. Hal ini menunjukkan bahwa peta yang dihasilkan sudah cukup baik untuk merepresentasikan data yang dilatih. Nilai mean distance to closest unit pada akhir pelatihan adalah sekitar 0,04, yang berarti secara rata-rata setiap objek dalam data memiliki jarak sebesar 0,04 terhadap unit terdekat pada peta SOM.
plot(iris.som, type = "dist.neighbours")
Interpretasi : Rentang nilai jarak, yang diwakili oleh
skala warna dari merah tua (jarak rendah) hingga putih/kuning terang
(jarak tinggi), menunjukkan tingkat kemiripan antar neuron; area
berwarna merah dominan mengindikasikan kelompok data yang memiliki
karakteristik sangat serupa atau homogen karena jarak antar unitnya
kecil. Sebaliknya, pola garis atau rintangan berwarna kuning terang
hingga putih yang melintang secara diagonal dan melengkung di tengah
bertindak sebagai pembatas (boundaries) yang menunjukkan perbedaan
signifikan atau jarak yang lebar antar kelompok data. Secara
keseluruhan, visualisasi ini mengungkapkan adanya setidaknya dua atau
tiga klaster utama yang dipisahkan oleh “dinding” jarak tinggi tersebut,
memberikan gambaran jelas mengenai segmentasi data dalam ruang
berdimensi tinggi yang telah dipetakan.
D. Clustering Neuron SOM
Setelah proses pelatihan model Self Organizing Maps (SOM) selesai, tahap selanjutnya adalah melakukan pengelompokan neuron menggunakan metode hierarchical clustering. Tujuan dari tahap ini adalah untuk mengidentifikasi pola kelompok pada neuron SOM yang telah terbentuk.
codes <- iris.som$codes[[1]]
distances <- dist(codes)
hc <- hclust(distances, method = "ward.D2")
plot(hc)
rect.hclust(hc, 3, border = "red")
Interpretasi : Berdasarkan visualisasi Dendrogram SOM yang dihasilkan menggunakan metode hierarchical clustering (Ward.D2), dapat diketahui bahwa struktur pengelompokan unit-unit pada peta SOM membentuk tiga klaster utama yang ditandai dengan kotak berwarna merah.
clusters <- cutree(hc, k = 3)
plot(iris.som, type = "mapping", bgcol = rainbow(3)[clusters])
add.cluster.boundaries(iris.som, clusters)
Interpretasi : Visualisasi tersebut menunjukkan hasil akhir pengelompokan pada peta Self-Organizing Map (SOM) berukuran 10×10 dengan topologi heksagonal, yang berdasarkan pemotongan dendrogram terbagi menjadi tiga klaster utama (merah, biru, dan hijau) dengan batas yang ditandai oleh garis hitam tebal; setiap neuron direpresentasikan sebagai lingkaran yang berisi titik-titik data hasil pemetaan melalui Best Matching Unit (BMU), di mana secara spasial klaster biru terkonsentrasi di bagian tengah dengan kepadatan tinggi yang mencerminkan homogenitas data, klaster merah cenderung berada di bagian tepi yang menunjukkan perbedaan karakteristik yang lebih jelas, sementara klaster hijau tampak terpisah di bagian atas dan bawah peta akibat penggunaan topologi toroidal yang menghubungkan sisi-sisi peta secara kontinu, sehingga pola distribusi yang terstruktur ini mengindikasikan bahwa model SOM berhasil mengorganisasikan seluruh data ke dalam kelompok-kelompok yang memiliki kemiripan karakteristik berdasarkan kedekatan antar neuron.
E. Mapping Data ke Cluster
bmu <- iris.som$unit.classif
data_cluster <- clusters[bmu]
hasil <- data.frame(
Species = iris$Species,
Cluster = as.factor(data_cluster)
)
hasil
## Species Cluster
## 1 setosa 3
## 2 setosa 3
## 3 setosa 3
## 4 setosa 3
## 5 setosa 3
## 6 setosa 3
## 7 setosa 3
## 8 setosa 3
## 9 setosa 3
## 10 setosa 3
## 11 setosa 3
## 12 setosa 3
## 13 setosa 3
## 14 setosa 3
## 15 setosa 3
## 16 setosa 3
## 17 setosa 3
## 18 setosa 3
## 19 setosa 3
## 20 setosa 3
## 21 setosa 3
## 22 setosa 3
## 23 setosa 3
## 24 setosa 3
## 25 setosa 3
## 26 setosa 3
## 27 setosa 3
## 28 setosa 3
## 29 setosa 3
## 30 setosa 3
## 31 setosa 3
## 32 setosa 3
## 33 setosa 3
## 34 setosa 3
## 35 setosa 3
## 36 setosa 3
## 37 setosa 3
## 38 setosa 3
## 39 setosa 3
## 40 setosa 3
## 41 setosa 3
## 42 setosa 3
## 43 setosa 3
## 44 setosa 3
## 45 setosa 3
## 46 setosa 3
## 47 setosa 3
## 48 setosa 3
## 49 setosa 3
## 50 setosa 3
## 51 versicolor 1
## 52 versicolor 1
## 53 versicolor 1
## 54 versicolor 1
## 55 versicolor 1
## 56 versicolor 1
## 57 versicolor 1
## 58 versicolor 1
## 59 versicolor 1
## 60 versicolor 1
## 61 versicolor 1
## 62 versicolor 1
## 63 versicolor 1
## 64 versicolor 1
## 65 versicolor 1
## 66 versicolor 1
## 67 versicolor 1
## 68 versicolor 1
## 69 versicolor 1
## 70 versicolor 1
## 71 versicolor 1
## 72 versicolor 1
## 73 versicolor 1
## 74 versicolor 1
## 75 versicolor 1
## 76 versicolor 1
## 77 versicolor 1
## 78 versicolor 1
## 79 versicolor 1
## 80 versicolor 1
## 81 versicolor 1
## 82 versicolor 1
## 83 versicolor 1
## 84 versicolor 1
## 85 versicolor 1
## 86 versicolor 1
## 87 versicolor 1
## 88 versicolor 1
## 89 versicolor 1
## 90 versicolor 1
## 91 versicolor 1
## 92 versicolor 1
## 93 versicolor 1
## 94 versicolor 1
## 95 versicolor 1
## 96 versicolor 1
## 97 versicolor 1
## 98 versicolor 1
## 99 versicolor 1
## 100 versicolor 1
## 101 virginica 2
## 102 virginica 1
## 103 virginica 2
## 104 virginica 2
## 105 virginica 2
## 106 virginica 2
## 107 virginica 1
## 108 virginica 2
## 109 virginica 1
## 110 virginica 2
## 111 virginica 2
## 112 virginica 1
## 113 virginica 2
## 114 virginica 1
## 115 virginica 1
## 116 virginica 2
## 117 virginica 2
## 118 virginica 2
## 119 virginica 2
## 120 virginica 1
## 121 virginica 2
## 122 virginica 1
## 123 virginica 2
## 124 virginica 1
## 125 virginica 2
## 126 virginica 2
## 127 virginica 1
## 128 virginica 1
## 129 virginica 1
## 130 virginica 2
## 131 virginica 2
## 132 virginica 2
## 133 virginica 1
## 134 virginica 1
## 135 virginica 1
## 136 virginica 2
## 137 virginica 2
## 138 virginica 2
## 139 virginica 1
## 140 virginica 2
## 141 virginica 2
## 142 virginica 2
## 143 virginica 1
## 144 virginica 2
## 145 virginica 2
## 146 virginica 2
## 147 virginica 1
## 148 virginica 2
## 149 virginica 2
## 150 virginica 1
F. Evaluasi Cluster
table(hasil$Species, hasil$Cluster)
##
## 1 2 3
## setosa 0 0 50
## versicolor 50 0 0
## virginica 19 31 0
akurasi <- (50 + 50 + 31) / 150
akurasi
## [1] 0.8733333
III. Kesimpulan
Akurasi model yang diperoleh adalah 87.33%. SOM berhasil memetakan data Iris ke dalam 3 cluster yang sesuai dengan spesies asli.
IV. Referensi
Irwan, I., Zaki, A., & Widiyaningrum, E. J. (2025). Earthquake point clustering using self organizing maps (SOM) in Sulawesi and Maluku regions. Inferensi, 8(3).
Irwan. Self Organizing Maps (SOM). RPubs.
Annas, S., Uca, U., Irwan, I., Safei, R. H., & Rais, Z. (2022). Using k-means and self organizing maps in clustering air pollution distribution in Makassar City, Indonesia. Jambura Journal of Mathematics.