ALGORITMA SELF ORGANIZING MAP

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.

Dalam jaringan SOM, neuron target tidak diletakkan dalam sebuah baris seperti layaknya model JST yang lain. Neuron target diletakkan dalam dua dimensi yang bentuk/topologinya dapat diatur. Topologi yang berbeda akan menghasilkan neuron sekitar neuron pemenang yang berbeda sehingga bobot yang dihaslkan juga akan berbeda. Pada SOM, perubahan bobot tidak hanya dilakukan pada bobot garis yang terhubung ke neuron pemenang saja, tetapi juga pada bobot garis ke neuron-neuron di sekitarnya. neuron di sekitar neuron pemenang ditentukan berdasarkan jaraknya dari neuron pemenang.

TAHAPAN ALGORITMA SELF ORGANIZING MAP

  1. Mengambil data dari beberapa data iris
  2. Inisialisasi bobot input dan aoutput den
  3. Menghitung Jarak D(j) antara vector input dan output dengan rumus 𝐷_((𝑗) )=∑(𝑖=0)^𝑛〖(𝑤_𝑖𝑗−𝑥_𝑖)²〗(1)
  4. Mencari nilai terkecil dari seluruh bobot D(j). Index dari bobot D(j) yang paling kecil disebut winning neuron.
  5. Memperbarui setiap bobot Wij dengan menggunakan rumus : wij(𝑏𝑎𝑟𝑢) = wij (𝑙𝑎𝑚𝑎) + 𝑎[xi − wij (𝑙𝑎𝑚𝑎)]
  6. Modifikasi parameter learning rate (α) Untuk iterasi kedua, memperbarui (α) =0,3 dan bobot
  7. Mengulangi Lagkah 6-7 hingga mencapai iterasi. Maksimal kondisi pemberhentian wij hanya berubah sedikit saja, berhenti iterasi sudah mencapai konvergen sehingga dapat di hentikan.

EKSPERIMEN SELF ORGANIZING MAP

PERSIAPAN

Paket dan data

library(class)
library(MASS)
library(kohonen)
## 
## Attaching package: 'kohonen'
## The following object is masked from 'package:class':
## 
##     somgrid
library(ggplot2) # plot
library(GGally) # Plot
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
library(RColorBrewer) # Untuk Warna yang di gunakan

MENJELASKAN DATA & MENCARI KORELASI

# pertama tama panggil data
summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Mengelompokan data iris dalam beberapa kelompok

# Tetapkan atribut untuk dapat mengklasifikasikan variabel (bukan pengamatan) yang kemudian dapat diselidiki menggunakan GGall ( Plot)
attr(iris,'Sepal') <- c("Sepal.Length", "Sepal.Width")
attr(iris,'Petal') <- c("Petal.Length", "Petal.Width")
str(attributes(iris))
## List of 5
##  $ names    : chr [1:5] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" ...
##  $ class    : chr "data.frame"
##  $ row.names: int [1:150] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Sepal    : chr [1:2] "Sepal.Length" "Sepal.Width"
##  $ Petal    : chr [1:2] "Petal.Length" "Petal.Width"

lalu Tentukan kelompok variabel berdasarkan atribut

(SepalVar <- attr(iris, "Sepal"))
## [1] "Sepal.Length" "Sepal.Width"
(PetalVar <- attr(iris, "Petal"))
## [1] "Petal.Length" "Petal.Width"

dan selanjutnya Mencari korelasi dari data iris dengan mengunakan syntax berikut

ggpairs(iris, title = "dalam semua dataset")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

korelasi dikatakan baik jika nilainya mendekati 1 atau -1.

maka dari hasil korelasi di atas dapat di tuliskan bahwa korelasi antara sepal.Leghth dagan sepal.Width adalah -0,118 jadi bisa di katakan korelasi nya lemah berbeda dengan nilai korelasi antara sepal.Width dan Petal.length adalah 0,872 itu bisa dikatakan baik dan seterusnya. dan sampai nilai korelasi aantara Petal.Lenght dan Petal Widht adalah 0,963 itu di katakan sanggat baik karena nilainya mendekati 1.

STUDY KASUS

  1. Memanggil data iris dengan syntax seperti berikut.
data("iris")
View(iris)

Berdasarkan data iris diatas dapat diketahui bahwa terdapat 5 variabel yaitu Sepal.Length, Sepal.Width, Petal.Length, Petal.Width dan species(sebagai label)

  1. Melakukan standarisasi atau penghapusan pada Variabel species(label)
scale(iris[,-5])
##        Sepal.Length Sepal.Width Petal.Length   Petal.Width
##   [1,]  -0.89767388  1.01560199  -1.33575163 -1.3110521482
##   [2,]  -1.13920048 -0.13153881  -1.33575163 -1.3110521482
##   [3,]  -1.38072709  0.32731751  -1.39239929 -1.3110521482
##   [4,]  -1.50149039  0.09788935  -1.27910398 -1.3110521482
##   [5,]  -1.01843718  1.24503015  -1.33575163 -1.3110521482
##   [6,]  -0.53538397  1.93331463  -1.16580868 -1.0486667950
##   [7,]  -1.50149039  0.78617383  -1.33575163 -1.1798594716
##   [8,]  -1.01843718  0.78617383  -1.27910398 -1.3110521482
##   [9,]  -1.74301699 -0.36096697  -1.33575163 -1.3110521482
##  [10,]  -1.13920048  0.09788935  -1.27910398 -1.4422448248
##  [11,]  -0.53538397  1.47445831  -1.27910398 -1.3110521482
##  [12,]  -1.25996379  0.78617383  -1.22245633 -1.3110521482
##  [13,]  -1.25996379 -0.13153881  -1.33575163 -1.4422448248
##  [14,]  -1.86378030 -0.13153881  -1.50569459 -1.4422448248
##  [15,]  -0.05233076  2.16274279  -1.44904694 -1.3110521482
##  [16,]  -0.17309407  3.08045544  -1.27910398 -1.0486667950
##  [17,]  -0.53538397  1.93331463  -1.39239929 -1.0486667950
##  [18,]  -0.89767388  1.01560199  -1.33575163 -1.1798594716
##  [19,]  -0.17309407  1.70388647  -1.16580868 -1.1798594716
##  [20,]  -0.89767388  1.70388647  -1.27910398 -1.1798594716
##  [21,]  -0.53538397  0.78617383  -1.16580868 -1.3110521482
##  [22,]  -0.89767388  1.47445831  -1.27910398 -1.0486667950
##  [23,]  -1.50149039  1.24503015  -1.56234224 -1.3110521482
##  [24,]  -0.89767388  0.55674567  -1.16580868 -0.9174741184
##  [25,]  -1.25996379  0.78617383  -1.05251337 -1.3110521482
##  [26,]  -1.01843718 -0.13153881  -1.22245633 -1.3110521482
##  [27,]  -1.01843718  0.78617383  -1.22245633 -1.0486667950
##  [28,]  -0.77691058  1.01560199  -1.27910398 -1.3110521482
##  [29,]  -0.77691058  0.78617383  -1.33575163 -1.3110521482
##  [30,]  -1.38072709  0.32731751  -1.22245633 -1.3110521482
##  [31,]  -1.25996379  0.09788935  -1.22245633 -1.3110521482
##  [32,]  -0.53538397  0.78617383  -1.27910398 -1.0486667950
##  [33,]  -0.77691058  2.39217095  -1.27910398 -1.4422448248
##  [34,]  -0.41462067  2.62159911  -1.33575163 -1.3110521482
##  [35,]  -1.13920048  0.09788935  -1.27910398 -1.3110521482
##  [36,]  -1.01843718  0.32731751  -1.44904694 -1.3110521482
##  [37,]  -0.41462067  1.01560199  -1.39239929 -1.3110521482
##  [38,]  -1.13920048  1.24503015  -1.33575163 -1.4422448248
##  [39,]  -1.74301699 -0.13153881  -1.39239929 -1.3110521482
##  [40,]  -0.89767388  0.78617383  -1.27910398 -1.3110521482
##  [41,]  -1.01843718  1.01560199  -1.39239929 -1.1798594716
##  [42,]  -1.62225369 -1.73753594  -1.39239929 -1.1798594716
##  [43,]  -1.74301699  0.32731751  -1.39239929 -1.3110521482
##  [44,]  -1.01843718  1.01560199  -1.22245633 -0.7862814418
##  [45,]  -0.89767388  1.70388647  -1.05251337 -1.0486667950
##  [46,]  -1.25996379 -0.13153881  -1.33575163 -1.1798594716
##  [47,]  -0.89767388  1.70388647  -1.22245633 -1.3110521482
##  [48,]  -1.50149039  0.32731751  -1.33575163 -1.3110521482
##  [49,]  -0.65614727  1.47445831  -1.27910398 -1.3110521482
##  [50,]  -1.01843718  0.55674567  -1.33575163 -1.3110521482
##  [51,]   1.39682886  0.32731751   0.53362088  0.2632599711
##  [52,]   0.67224905  0.32731751   0.42032558  0.3944526477
##  [53,]   1.27606556  0.09788935   0.64691619  0.3944526477
##  [54,]  -0.41462067 -1.73753594   0.13708732  0.1320672944
##  [55,]   0.79301235 -0.59039513   0.47697323  0.3944526477
##  [56,]  -0.17309407 -0.59039513   0.42032558  0.1320672944
##  [57,]   0.55148575  0.55674567   0.53362088  0.5256453243
##  [58,]  -1.13920048 -1.50810778  -0.25944625 -0.2615107354
##  [59,]   0.91377565 -0.36096697   0.47697323  0.1320672944
##  [60,]  -0.77691058 -0.81982329   0.08043967  0.2632599711
##  [61,]  -1.01843718 -2.42582042  -0.14615094 -0.2615107354
##  [62,]   0.06843254 -0.13153881   0.25038262  0.3944526477
##  [63,]   0.18919584 -1.96696410   0.13708732 -0.2615107354
##  [64,]   0.30995914 -0.36096697   0.53362088  0.2632599711
##  [65,]  -0.29385737 -0.36096697  -0.08950329  0.1320672944
##  [66,]   1.03453895  0.09788935   0.36367793  0.2632599711
##  [67,]  -0.29385737 -0.13153881   0.42032558  0.3944526477
##  [68,]  -0.05233076 -0.81982329   0.19373497 -0.2615107354
##  [69,]   0.43072244 -1.96696410   0.42032558  0.3944526477
##  [70,]  -0.29385737 -1.27867961   0.08043967 -0.1303180588
##  [71,]   0.06843254  0.32731751   0.59026853  0.7880306775
##  [72,]   0.30995914 -0.59039513   0.13708732  0.1320672944
##  [73,]   0.55148575 -1.27867961   0.64691619  0.3944526477
##  [74,]   0.30995914 -0.59039513   0.53362088  0.0008746178
##  [75,]   0.67224905 -0.36096697   0.30703027  0.1320672944
##  [76,]   0.91377565 -0.13153881   0.36367793  0.2632599711
##  [77,]   1.15530226 -0.59039513   0.59026853  0.2632599711
##  [78,]   1.03453895 -0.13153881   0.70356384  0.6568380009
##  [79,]   0.18919584 -0.36096697   0.42032558  0.3944526477
##  [80,]  -0.17309407 -1.04925145  -0.14615094 -0.2615107354
##  [81,]  -0.41462067 -1.50810778   0.02379201 -0.1303180588
##  [82,]  -0.41462067 -1.50810778  -0.03285564 -0.2615107354
##  [83,]  -0.05233076 -0.81982329   0.08043967  0.0008746178
##  [84,]   0.18919584 -0.81982329   0.76021149  0.5256453243
##  [85,]  -0.53538397 -0.13153881   0.42032558  0.3944526477
##  [86,]   0.18919584  0.78617383   0.42032558  0.5256453243
##  [87,]   1.03453895  0.09788935   0.53362088  0.3944526477
##  [88,]   0.55148575 -1.73753594   0.36367793  0.1320672944
##  [89,]  -0.29385737 -0.13153881   0.19373497  0.1320672944
##  [90,]  -0.41462067 -1.27867961   0.13708732  0.1320672944
##  [91,]  -0.41462067 -1.04925145   0.36367793  0.0008746178
##  [92,]   0.30995914 -0.13153881   0.47697323  0.2632599711
##  [93,]  -0.05233076 -1.04925145   0.13708732  0.0008746178
##  [94,]  -1.01843718 -1.73753594  -0.25944625 -0.2615107354
##  [95,]  -0.29385737 -0.81982329   0.25038262  0.1320672944
##  [96,]  -0.17309407 -0.13153881   0.25038262  0.0008746178
##  [97,]  -0.17309407 -0.36096697   0.25038262  0.1320672944
##  [98,]   0.43072244 -0.36096697   0.30703027  0.1320672944
##  [99,]  -0.89767388 -1.27867961  -0.42938920 -0.1303180588
## [100,]  -0.17309407 -0.59039513   0.19373497  0.1320672944
## [101,]   0.55148575  0.55674567   1.27004036  1.7063794137
## [102,]  -0.05233076 -0.81982329   0.76021149  0.9192233541
## [103,]   1.51759216 -0.13153881   1.21339271  1.1816087073
## [104,]   0.55148575 -0.36096697   1.04344975  0.7880306775
## [105,]   0.79301235 -0.13153881   1.15674505  1.3128013839
## [106,]   2.12140867 -0.13153881   1.60992627  1.1816087073
## [107,]  -1.13920048 -1.27867961   0.42032558  0.6568380009
## [108,]   1.75911877 -0.36096697   1.43998331  0.7880306775
## [109,]   1.03453895 -1.27867961   1.15674505  0.7880306775
## [110,]   1.63835547  1.24503015   1.32668801  1.7063794137
## [111,]   0.79301235  0.32731751   0.76021149  1.0504160307
## [112,]   0.67224905 -0.81982329   0.87350679  0.9192233541
## [113,]   1.15530226 -0.13153881   0.98680210  1.1816087073
## [114,]  -0.17309407 -1.27867961   0.70356384  1.0504160307
## [115,]  -0.05233076 -0.59039513   0.76021149  1.5751867371
## [116,]   0.67224905  0.32731751   0.87350679  1.4439940605
## [117,]   0.79301235 -0.13153881   0.98680210  0.7880306775
## [118,]   2.24217198  1.70388647   1.66657392  1.3128013839
## [119,]   2.24217198 -1.04925145   1.77986923  1.4439940605
## [120,]   0.18919584 -1.96696410   0.70356384  0.3944526477
## [121,]   1.27606556  0.32731751   1.10009740  1.4439940605
## [122,]  -0.29385737 -0.59039513   0.64691619  1.0504160307
## [123,]   2.24217198 -0.59039513   1.66657392  1.0504160307
## [124,]   0.55148575 -0.81982329   0.64691619  0.7880306775
## [125,]   1.03453895  0.55674567   1.10009740  1.1816087073
## [126,]   1.63835547  0.32731751   1.27004036  0.7880306775
## [127,]   0.43072244 -0.59039513   0.59026853  0.7880306775
## [128,]   0.30995914 -0.13153881   0.64691619  0.7880306775
## [129,]   0.67224905 -0.59039513   1.04344975  1.1816087073
## [130,]   1.63835547 -0.13153881   1.15674505  0.5256453243
## [131,]   1.87988207 -0.59039513   1.32668801  0.9192233541
## [132,]   2.48369858  1.70388647   1.49663097  1.0504160307
## [133,]   0.67224905 -0.59039513   1.04344975  1.3128013839
## [134,]   0.55148575 -0.59039513   0.76021149  0.3944526477
## [135,]   0.30995914 -1.04925145   1.04344975  0.2632599711
## [136,]   2.24217198 -0.13153881   1.32668801  1.4439940605
## [137,]   0.55148575  0.78617383   1.04344975  1.5751867371
## [138,]   0.67224905  0.09788935   0.98680210  0.7880306775
## [139,]   0.18919584 -0.13153881   0.59026853  0.7880306775
## [140,]   1.27606556  0.09788935   0.93015445  1.1816087073
## [141,]   1.03453895  0.09788935   1.04344975  1.5751867371
## [142,]   1.27606556  0.09788935   0.76021149  1.4439940605
## [143,]  -0.05233076 -0.81982329   0.76021149  0.9192233541
## [144,]   1.15530226  0.32731751   1.21339271  1.4439940605
## [145,]   1.03453895  0.55674567   1.10009740  1.7063794137
## [146,]   1.03453895 -0.13153881   0.81685914  1.4439940605
## [147,]   0.55148575 -1.27867961   0.70356384  0.9192233541
## [148,]   0.79301235 -0.13153881   0.81685914  1.0504160307
## [149,]   0.43072244  0.78617383   0.93015445  1.4439940605
## [150,]   0.06843254 -0.13153881   0.76021149  0.7880306775
## attr(,"scaled:center")
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##     5.843333     3.057333     3.758000     1.199333 
## attr(,"scaled:scale")
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##    0.8280661    0.4358663    1.7652982    0.7622377
head(scale(iris[,-5]))
##      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
  1. Melihat dimensi dari data iris dengan syntax seperti berikut.
dim(iris)
## [1] 150   5

Berdasarkan hasil output diatas dapat diketahui bahwa dimensi data yang ada yaitu 150 baris dan 5 kolom.

  1. Melihat struktur dari data iris dengan syntax seperti berikut.
str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

PENGELOMPOKAN

  1. membuat kelompok atau clustering dari data iris dengan syntax berikut:
grid<- somgrid(xdim=5 , ydim=5 , topo = "hexagonal")
  1. Kwmudian selanjutnya melakukan perintah SOM dari data iris dengan syntax seperti berikut.
som.iris <- som(as.matrix(iris[,-5]), grid = somgrid(xdim = 4, ydim = 4, topo="hexagonal"))
  1. Melihat struktur data setelah adanya cara kerja SOM pada data iris dengan syntax seperti berikut.
str(som.iris)
## List of 14
##  $ data            :List of 1
##   ..$ : num [1:150, 1:4] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : NULL
##   .. .. ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
##  $ unit.classif    : num [1:150] 1 5 5 5 1 1 5 5 5 5 ...
##  $ distances       : num [1:150] 0.0767 0.0548 0.0172 0.0212 0.0901 ...
##  $ grid            :List of 6
##   ..$ pts              : num [1:16, 1:2] 1.5 2.5 3.5 4.5 1 2 3 4 1.5 2.5 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : NULL
##   .. .. ..$ : chr [1:2] "x" "y"
##   ..$ xdim             : num 4
##   ..$ ydim             : num 4
##   ..$ topo             : chr "hexagonal"
##   ..$ neighbourhood.fct: Factor w/ 2 levels "bubble","gaussian": 1
##   ..$ toroidal         : logi FALSE
##   ..- attr(*, "class")= chr "somgrid"
##  $ codes           :List of 1
##   ..$ : num [1:16, 1:4] 5.26 5.59 6.92 7.52 4.71 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:16] "V1" "V2" "V3" "V4" ...
##   .. .. ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
##  $ changes         : num [1:100, 1] 0.0308 0.0282 0.0254 0.025 0.0279 ...
##  $ alpha           : num [1:2] 0.05 0.01
##  $ radius          : Named num [1:2] 2.65 0
##   ..- attr(*, "names")= chr [1:2] "66.66667%" ""
##  $ na.rows         : int(0) 
##  $ user.weights    : num 1
##  $ distance.weights: num 1
##  $ whatmap         : int 1
##  $ maxNA.fraction  : int 0
##  $ dist.fcts       : chr "sumofsquares"
##  - attr(*, "class")= chr "kohonen"

PLOT

Melihat hasil plot dari data dengan syntax seperti berikut.

plot(som.iris, type="mapping")

Berdasarkan hasil output diatas dapat diketahui bahwa dimensi dari letak gambar yaitu 4x4 maka terdapat sebanyak 16 lingkaran yang menyatakan data sudah terkumpul pada masing-masing lingkaran tersebut.

  1. Untuk mengetahui objek yang masuk didalam lingkaran maka menggunakan syntax seperti berikut.
som.iris$grid$pts
##         x         y
##  [1,] 1.5 0.8660254
##  [2,] 2.5 0.8660254
##  [3,] 3.5 0.8660254
##  [4,] 4.5 0.8660254
##  [5,] 1.0 1.7320508
##  [6,] 2.0 1.7320508
##  [7,] 3.0 1.7320508
##  [8,] 4.0 1.7320508
##  [9,] 1.5 2.5980762
## [10,] 2.5 2.5980762
## [11,] 3.5 2.5980762
## [12,] 4.5 2.5980762
## [13,] 1.0 3.4641016
## [14,] 2.0 3.4641016
## [15,] 3.0 3.4641016
## [16,] 4.0 3.4641016

Berdasarkan hasil output diatas dapat diketahui bahwa pada lingkaran pertama sumbu x bernilai 1.5 dan sumbu y bernilai 0.8660254 , pada lingkaran kedua sumbu x bernilai 2.5 dan sumbu y bernilai 0.8660254 dan seterusnya.

  1. Untuk melihat letak nomer objek berapa yang masuk dalam lingkaran maka digunakan syntax seperti berikut.
som.iris$unit.classif
##   [1]  1  5  5  5  1  1  5  5  5  5  1  5  5  5  1  1  1  1  1  1  1  1  5  1  5
##  [26]  5  1  1  1  5  5  1  1  1  5  5  1  1  5  1  1  5  5  1  1  5  1  5  1  5
##  [51]  7  7  7 13  7 14  7  9  7 13  9 10 13 10 13  7 14 13 15 13 16 10 11 10 10
##  [76]  7  7  7 10 13 13 13 13 11 14 10  7 15 14 13 14 10 13  9 14 14 14 10  9 14
## [101]  8 16  3 12  8  4 14  4 12  4 12 12  3 16 16  8 12  4  4 15  3 16  4 11  8
## [126]  4 11 11 12  3  4  4 12 11 12  4  8 12 16  3  8  3 16  8  8  3 11 12  8 16

Berdasarkan output diatas dapat diketahui bahwa objek nomer 1 masuk dalam lingkaran 9 , objek nomer 2 masuk dalam lingkaran 14 dan objek nomer 145 masuk dalam lingkaran 4.

  1. Kemudian melihat plot keseluruhan som.wines dengan syntax seperti berikut.
plot(som.iris)
text(som.iris$grid$pts, labels = som.iris$unit.classif,cex=1.5)

Berdasarkan hasil plot diatas dapat diketahui bahwa dari semua 4 variabel yang ada tidak ada satupun variabel yang direduksi. Pada warna hijau mewakili variabel Sepal.Lengh , pada warna kuning mewakili variabel Sepal.Width , dan seterusnya.

Berdasarkan plot diatas dapat diketahui bahwa terlihat nilai-nilai dari nomor objeknya. Dalam satu lingkaran terdapat beberapa objek sehingga beberapa angka bertumpukkan menjadi satu.

  1. Selanjutnya melihat hasil pengelompokkan dari beberapa objek didalam masing-masing lingkaran dengan syntax seperti berikut.
som.iris$codes[[1]]
##     Sepal.Length Sepal.Width Petal.Length Petal.Width
## V1      5.261855    3.695019     1.486750   0.2704213
## V2      5.585739    3.510916     2.324128   0.5929579
## V3      6.916308    3.057181     5.466464   2.1250718
## V4      7.517370    3.164203     6.388450   2.0812045
## V5      4.711997    3.138671     1.415328   0.1983177
## V6      5.354541    3.298424     2.261639   0.5424190
## V7      6.634671    3.041814     4.664854   1.4850323
## V8      6.543123    3.234957     5.682493   2.3276353
## V9      5.007307    2.347628     3.263493   1.0072001
## V10     6.082643    2.957657     4.398822   1.3975978
## V11     6.218207    2.711096     4.945164   1.7262684
## V12     6.422447    2.864145     5.502469   1.9100223
## V13     5.628294    2.552657     3.859564   1.1606951
## V14     5.569631    2.845832     4.294849   1.3345385
## V15     6.164354    2.321002     4.563135   1.4291510
## V16     5.818562    2.824856     4.984744   1.9523345

Berdasarkan hasil output diatas terdapat sebanyak 16 nilai dari 4 variabel. Nilai V1 dari Sepal.Length adalah 5.404944 ,dari Sepal.Width sebesar 2.490191 , dan seterusnya sampai dengan V16.

  1. Melakukan pengelompokkan berdasarkan nilai codes menggunakan cluster hierarki dengan syntax seperti berikut.
dist(som.iris$codes[[1]])
##            V1        V2        V3        V4        V5        V6        V7
## V2  0.9716101                                                            
## V3  4.7351776 3.7680156                                                  
## V4  5.7161803 4.7523684 1.1066670                                        
## V5  0.7887753 1.3724608 4.9989712 6.0123188                              
## V6  0.9166863 0.3241365 3.9080700 4.9085925 1.1282867                    
## V7  3.7265167 2.7559231 1.0638539 2.0298626 3.9901265 2.8928438          
## V8  4.8672063 3.9090232 0.5084991 1.2301491 5.1093038 4.0380687 1.3383776
## V9  2.3621852 1.6558466 3.2016352 4.2291905 2.1869989 1.4981052 2.3070204
## V10 3.3118107 2.3462339 1.5407725 2.5548073 3.5001355 2.4382658 0.6246880
## V11 3.9953513 3.0321529 1.0187824 2.0253852 4.1528140 3.1134675 0.6477535
## V12 4.5663572 3.5992924 0.5733273 1.4502267 4.7576946 3.7016674 0.9791940
## V13 2.8039446 1.8973570 2.3293078 3.3444280 2.8431452 1.8885818 1.4162470
## V14 3.1358591 2.2082304 1.9636273 2.9724945 3.2255125 2.2388617 1.1542405
## V15 3.6754903 2.7318611 1.5516774 2.5096988 3.7684964 2.7738658 0.8684680
## V16 4.0164542 3.0743570 1.2332535 2.2334065 4.1400813 3.1373155 1.0167629
##            V8        V9       V10       V11       V12       V13       V14
## V2                                                                       
## V3                                                                       
## V4                                                                       
## V5                                                                       
## V6                                                                       
## V7                                                                       
## V8                                                                       
## V9  3.2773759                                                            
## V10 1.6738331 1.7233297                                                  
## V11 1.1337095 2.2233900 0.6969097                                        
## V12 0.5990605 2.8456125 1.2668172 0.6399160                              
## V13 2.4468887 0.8980662 0.8469830 1.3680278 1.9970806                    
## V14 2.0027238 1.3172929 0.5389554 1.0075548 1.5865553 0.5559561          
## V15 1.7432769 1.7906922 0.6633249 0.6239371 1.2145783 0.9529454 0.8426567
## V16 1.1492939 2.1775821 0.8593091 0.4746900 0.7975276 1.4152797 0.9591839
##           V15
## V2           
## V3           
## V4           
## V5           
## V6           
## V7           
## V8           
## V9           
## V10          
## V11          
## V12          
## V13          
## V14          
## V15          
## V16 0.9082484
hclust(dist(som.iris$codes[[1]]))
## 
## Call:
## hclust(d = dist(som.iris$codes[[1]]))
## 
## Cluster method   : complete 
## Distance         : euclidean 
## Number of objects: 16

Berdasarkan hasil diatas dapat diketahui bahwa pengelompokkan yang dilakukan dengan cluster hierarki menggunakan metode complete , dan menggunakan distance yaitu euclidean dengan objek sebanyak 16.

  1. Kemudian membuat plot hasil pengelompokkan dengan syntax seperti berikut.
peta <- cutree(hclust(dist(som.iris$codes[[1]])),5)
plot(peta)

plot(som.iris,type="codes",bgcol=rainbow(5)[peta])
add.cluster.boundaries(som.iris,peta)

Berdasarkan hasil plot diatas dapat diketahui bahwa hasil pengelompokkan dari 20 objek lingkaran menghasilkan 5 kelompok. Pada kelompok lingkaran berwarna hijau terdapat 3 objek, kelompok lingkaran berwarna merah terdapat 5 objek , kelompok lingkaran berwarna kuning terdapat 4 objek , kelompok lingkaran berwarna ungu terdapat 1 objek dan kelompok lingkaran berwarna biru terdapat 3 objek. dan Dengan adanya garis pembatas seperti hasil output diatas maka dapat dilihat dengan jelas bahwa pengelompokkan yang terdapat pada data iris dengan SOM yaitu 5 kelompok.

~~~~~ THANK YOU ~~~~~