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.