UTS METODOLOGI PENELITIAN DAN OPTIMASI

PERBANDINGAN ANTARA ALGORITMA K-MEANS DENGAN EM UNTUK DATA IRIS MENGGUNAKAN PACKAGE EMCLUSTER





NAMA:  Vanessa Supit

NIM:  20194920014

PROGRAM STUDI:  Statistika Bisnis



FAKULTAS SCIENCE TECHNOLOGY, ENGINEERING, AND MATHEMATHICS
UNIVERSITAS MATANA
TANGERANG
2021

BAB 1
PENDAHULUAN

1.1 Latar Belakang

      Clustering adalah metode penganalisaan data, yang sering dimasukkan sebagai salah satu metode Data Mining, yang tujuannya adalah untuk mengelompokkan data dengan karakteristik yang sama ke suatu ‘wilayah’ yang sama dan data dengan karakteristik yang berbeda ke ‘wilayah’ yang lain. Dua perwakilan dari algoritma clustering adalah algoritma K-means dan algoritma ekspektasi maksimisasi (EM). EM dan K-means serupa dalam arti bahwa mereka memungkinkan penyempurnaan model dari proses berulang untuk menemukan wilayah terbaik. Namun, algoritma K-means berbeda dalam metode yang digunakan untuk menghitung jarak Euclidean saat menghitung jarak antara masing-masing dua item data. EM menggunakan metode statistik dimana algoritma EM sering digunakan untuk menyediakan fungsi secara lebih efektif.
      K-Means adalah mengelompokkan item data ke dalam sejumlah kecil grup sedemikian sehingga masing-masing grup mempunyai sesuatu persamaan yang esensial. Pengklusteran merupakan pengelompokan record, pengamatan, atau memperhatikan dan membentuk kelas objek-objek yang memiliki kemiripan. Kluster adalah kumpulan record yang memiliki kemiripan suatu dengan yang lainnya dan memiliki ketidakmiripan dengan record dalam kluster lain (Joanna Ardhyanti).
      Algoritma EM merupakan algoritma klustering yang melakukan estimasi Maximum Likelihood (ML) dari parameter dalam sebuah model probabilistik. Algoritma ini akan melakukan klustering terhadap objek data termasuk data yang mengalami missing value. Iris adalah sebuah genus dalam famili Iridaceae yang mencakup 260–300 spesies tumbuhan berbunga. Tumbuhan tersebut mengambil nama dari kata bahasa Yunani untuk pelangi, yang juga merupakan nama dari dewi pelangi Yunani, Iris. Dataset Iris adalah kumpulan data multivariat yang diperkenalkan oleh ahli statistik dan biologi Inggris Ronald Fisher dalam makalahnya tahun 1936 “Penggunaan beberapa pengukuran dalam masalah taksonomi”. Kumpulan data terdiri dari 50 sampel dari masing-masing tiga spesies Iris (Iris Setosa, Iris virginica, dan Iris versicolor). Empat fitur diukur dari setiap sampel: panjang dan lebar sepal dan petal, dalam cm.
      Berdasarkan hal tersebut di atas, penulis ingin memberikan pemikiran tentang : “Analisis Hasil Perbandingan Metode Kmeans dengan Metode Ekspetasi Maksimisasi dalam Mengidentifikasi Data Iris Menggunakan Package EMCluster”. Dimana hasil dari tulisan ini akan bermanfaat untuk pembaca dalam memahami algoritma K-means dan algoritma ekspektasi maksimisasi (EM)

1.2 Rumusan Masalah

Rumusan permasalahan dalam penelitian ini adalah:
1.2.1 Seberapa jelaskah hasil yang akan diperoleh dalam membandingkan antara metode K-means dengan metode Ekspetasi maksimisasi (EM).
1.2.2 Bagaimana melakukan perhitungan data mining untuk data Iris.

1.3 Tujuan

Tujuan yang ingin dicapai melalui penelitian ini adalah:
1.3.1 Mengetahui hasillebih spesifik menggunakan metode K-means dengan metode Ekspetasi maksimisasi (EM).
1.3.2 Mendapatkan hasil perhitungan data mining data Iris.

1.4 Manfaat

Manfaat yang dapat diperoleh melalui penelitian ini adalah:
1.4.1 Mengetahui perbandingan hasil dari metode K-means dengan metode Ekspetasi maksimisasi (EM).
1.4.2 Memahami cara kerja K-means dan Ekspetasi maksimisasi (EM).
1.4.3 Hasil dari penelitian dapat menjadi rujukan pembaca dalam memahami K-means dan Ekspetasi maksimisasi (EM).


BAB 2
KAJIAN PUSTAKA


2.1 Data Mining

      Data mining (DM) adalah serangkaian proses untuk menggali nilai tambah dari suatu kumpulan data berupa pengetahuan yang selama ini tidak diketahui secara manual. Patut diingat bahwa kata mining sendiri berarti usaha untuk mendapatkan sedikit barang berharga dari sejumlah besar material dasar. Karena itu DM sebenarnya memiliki akar yang panjang dari bidang ilmu seperti kecerdasan buatan (artificial intelligent), machine learning, statistik dan basis data. Beberapa teknik yang sering disebut-sebut dalam literatur DM antara lain : clustering, classification, association rule mining, neural network, dan genetic algorithm. (Lindawati:2008).
      Data mining bukan hanya pelengkap saja dalam suatu database, melainkan mempunyai fungsi yang yang penting untuk membantu penggunanya mendapatkan informasi yang berguna serta meningkatkan pengetahuan bagi sang pengguna itu sendiri dan dapat nantinya berguna untuk orang banyak. Pada dasarnya, data mining mempunyai empat fungsi dasar yaitu (Sando Romario, 2003) :
  1. Fungsi Klasifikasi ( classification )
    Data mining dapat digunakan untuk mengelompokkan data-data yang jumlahnya besar menjadi data-data yang lebih kecil.
  2. Fungsi Segmentasi ( Segmentation )
    Disini data mining juga digunakan untuk melakukan segementasi (pembagian) terhadap data berdasarkan karakteristik tertentu.
  3. Fungsi Asosiasi ( Association )
    Disini data mining juga digunakan untuk mencari hubungan antara karakteristik tertentu.
  4. Fungsi pengurutan ( Sequencing )
    Pada Fungsi ini, data mining digunakan untuk mengidentifikasikan perubahan pola yang telah terjadi dalam jangka waktu yang tertentu

2.2 Metode K-Means

      K-Means adalah mengelompokkan item data ke dalam sejumlah kecil grup sedemikian

sehingga masing-masing grup mempunyai sesuatu persamaan yang esensial. Pengklusteran merupakan pengelompokan record, pengamatan, atau memperhatikan dan membentuk kelas objek-objek yang memiliki kemiripan. Kluster adalah kumpulan record yang memiliki kemiripan suatu dengan yang lainnya dan memiliki ketidakmiripan dengan record dalam kluster lain. | K-Means melakukan pengelompokan data tanpa berdasarkan kelas data tertentu. Bahkan K-Means dapat dipakai untuk memberikan label pada kelas data yang belum diketahui itu. Karena itu K-Means sering digolongkan sebagai metode unsupervised learning. Prinsip dari K-Means adalah memaksimalkan kesamaan antar anggota satu kelas dan meminimumkan kesamaan antar kelas atau cluster. | K-Means Clustering merupakan salah satu metode clustering non-hirarki yang mengelompokkan data dalam bentuk satu atau lebih cluster /kelompok. Data-data yang memiliki karakteristik yang sama dikelompokan dalam satu cluster/kelompok yang lain sehingga data yang berada dalam satu cluster /kelompok memiliki tingkat variasi yang kecil

2.3 Algoritma EM

      Expectation Maximisation Algorithm (EM Algorithm) adalah algoritma yang sering digunakan untuk menemukan nilai estimasi Maximum Likelihood (ML) dari parameter dalam sebuah model probabilistic, dimana model juga tergantung pada latent variabel yang belum diketahui. Dalam algoritma ini, ada dua hal yang dilakukan secara bergantian yaitu E-step yang menghitung nilai ekspektasi dari likelihood termasuk laten variabel seolah-olah seperti mereka ada, dan M step menghitung nilai estimasi ML dari parameter dengan memaksimalkan nilai ekspektasi dari likelihood yang ditemukan pada E step.

2.4 Clustering

      Cluster data diartikan kelompok. Dengan demikian, pada dasarnya analisis cluster akan menghasilkan sejumlah cluster (kelompok). Analisis ini diawali dengan pemahaman bahwa sejumlah data tertentu sebenarnya mempunyai kemiripan di antara anggotanya. Karena itu, dimungkinkan untuk mengelompokkan anggota-anggota yang mirip atau mempunyai karakteristik yang serupa tersebut dalam satu atau lebih dari satu cluster. Clustering dibagi menjadi 2 jenis yaitu hierarchical clustering dan non-hierarchical clustering.
      Analisis klaster mengelompokkan objek data berdasarkan informasi yang hanya ditemukan dalam data yang menggambarkan objek dan hubungannya. Tujuannya adalah agar objek-objek dalam suatu kelompok menjadi serupa (atau terkait) satu sama lain dan berbeda dari (atau tidak terkait) dengan objek-objek dalam kelompok lain. Semakin besar kesamaan (atau homogenitas) dalam suatu kelompok dan semakin besar perbedaan antar kelompok, semakin baik atau lebih jelas pengelompokannya.

2.5 Metode Elbow

      Metode Elbow memberikan ide atau gagasan dengan cara memilih nilai cluster dan kemudian menambah nilai cluster tersebut untuk dijadikan model data dalam penentuan cluster terbaik. Metode ini akan menghasilkan informasi dalam menentukan jumlah cluster terbaik dengan cara melihat persentase hasil perbandingan antara jumlah cluster yang membentuk siku pada suatu titik. Algoritma Metode Elbow dalam menentukan nilai k pada K-means (Bholowalia & Kumar, 2014)

2.6 EMCluster

      Dalam pengelompokan tanpa pengawasan dan semi-terawat, EMCluster menyediakan algoritma EM dan berbagai pendekatan inisialisasi yang efisien untuk pengelompokan berbasis model dari distribusi Gaussian campuran hingga dispersi tidak terstruktur.

BAB 3
METODOLOGI PENELITIAN


3.1 Data

Pada penelitian inim untuk mengetahui perbandingan K-Means dan EXpectation Maximization dengan EMCluster maka akan digunakan dataset Iris. Iris merupakan salah satu dataset yang populer, dataset ini mungkin merupakan dataset yang paling terkenal dan dapat ditemukan dalam literatur pengenalan pola yang telah disusun oleh Fisher(1936). Kumpulan data bunga Iris atau kumpulan data Fisher’s Iris adalah kumpulan data multivariat yang diperkenalkan oleh ahli statistik Inggris dan ahli biologi Ronald Fisher pada tahun 1936.

head(iris, 10)
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  setosa
## 2           4.9         3.0          1.4         0.2  setosa
## 3           4.7         3.2          1.3         0.2  setosa
## 4           4.6         3.1          1.5         0.2  setosa
## 5           5.0         3.6          1.4         0.2  setosa
## 6           5.4         3.9          1.7         0.4  setosa
## 7           4.6         3.4          1.4         0.3  setosa
## 8           5.0         3.4          1.5         0.2  setosa
## 9           4.4         2.9          1.4         0.2  setosa
## 10          4.9         3.1          1.5         0.1  setosa

3.2 Metode Penelitian

      Untuk mengolah data ini digunakan metode K-means dan Expectation Maximum dengan EMCLsuter menggunakan R. package yang diperlukan dalam menggunakan R yaitu ggplot2, DT, EMCluster, FactoMineR, reshape2, summarytools, dan dplyr. untuk dataset iris sendiri telah tersedia didalam R.

Keterangan Plot:

  • ggplot2 : Package ggplot2 membuat mudah user pemula untuk membuat plot visualisasi.
  • DT : Package R DT menyediakan interface R ke library JavaScript DataTables. Objek data R (matriks atau bingkai data) dapat ditampilkan sebagai tabel pada halaman HTML, dan DataTables menyediakan pemfilteran, paginasi, pengurutan, dan banyak fitur lainnya dalam tabel.
  • EMCluster : Package EMCluster berguna dalam pengelompokan berbasis model dari distribusi
  • FactoMineR : FactoMineR adalah paket R yang didedikasikan untuk Analisis Data Eksplorasi multivarian.
  • reshape2 : memudahkan untuk mengubah data antara format lebar dan panjang.
  • summarytools : untuk Meringkas Data dengan Cepat dan Rapi
  • dplyr : membuat manipulasi data lebih mudah.

3.2.1 Metode K-means

      K-Means adalah sebuah kegiatan dalam mengelompokan berbagai macam rekaman data, observasi, atau melakukan pendekatan data dari sebuah objek dengan objek lain yang memiliki kesamaan tertentu. Cluster merupakan kumpulani baris data yang memiliki kesamaan dan ketidaksamaan untuk merekam kedalam cluster lain. (Johan Oscar Ong, 2013).

Metode K-means sendiri menggunakan algoritma berikut dalam menentukan klasternya :

kmeans(Data, centers=k)

Dalam menentukan nilai k nya dapat menggunakan metode Elbow dan metode Silhouette.

3.2.2 Metode EM

      Expectation Maximation (EM) termasuk algoritma partitional yang berbasiskan model yang menggunakan perhitungan probabilitas, bukan jarak seperti umumnya algoritma clustering yang lainnya, langkah-langkahnya sebagai berikut :
  1. Inisialisasi cluster centers sebanyak suatu nilai k. Nilai k bisa merupakan input dari user atau merupakan nilai yang didapatkan dengan memanfaatkan penggunaan algoritma lain.
  2. Iterasikan 2 langkah yang menjadi dasar penamaan algoritma berikut sampai mencapai suatu titik konvergensi yang telah ditentukan sebelumnya:
    1. langkah expectation
    2. langkah maximation

Algoritma yang digunakan didalam R untuk metode EM sebagai berikut :

emobj <- exhaust.EM(Data,nclass = k) 
emobj <- shortemcluster(Data, emobj,maxiter = 1000)
em_raw <- emcluster(Data, emobj, assign.class = TRUE)

3.2.3 Metode elbow

      Metode Elbow merupakan suatu metode yang digunakan untuk menghasilkan informasi dalam menentukan jumlah cluster terbaik dengan cara melihat persentase hasil perbandingan antara jumlah cluster yang akan membentuk siku pada suatu titik. algoritma dari elbow sendiri merupakan
fviz_nbclust(Data, kmeans, method = "wss")

3.2.4 Metode Silhouette

      Silhouette Coefficient digunakan untuk melihat kualitas dan kekuatan cluster, seberapa baik suatu objek ditempatkan dalam suatu cluster. Metode ini merupakan gabungan dari metode cohesion dan separation.
fviz_nbclust(Data, kmeans, method = "silhouette")

3.2.5 Principal Component Analysis (PCA)

      PCA merupakan teknik yang digunakan dalam melakukan analsis eksplorasi data,
      Dalam melakukan perbandingan metode penelitian dengan menggunakan data mentah dan principal components (PC). Data untuk PCA sendiri menggunakan fungsi dari package FactomineR.
set.seed(123)
pca_iris=PCA(iris[,-5],scale.unit = T,ncp = 2,graph = F)

BAB 4
HASIL DAN PEMBAHASAN


4.1 Eksplorasi Data

4.1.1 Packages

Package yang digunakan adalah :

library(ggplot2)
library(DT)
library(EMCluster)
library(FactoMineR)
library(reshape2)
library(summarytools)
library(dplyr)
library(factoextra)
library(cluster)

4.1.2 Input Data

Data yang digunakan adalah dataset Iris.

Data <- iris
head(Data, 5)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa

4.1.3 Eksplore Data

Statistik Deskriptif data:

summary(Data)
##   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  
##                 
##                 
## 
str(Data)
## '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 ...

Untuk data missing dalam data kita hapus:

Data<-na.omit(Data)

4.1.4 Standarisasi data

      Untuk langkah selanjutnya yaitu kita menstandarisasikan data. Dalam scoring, penggunaan scoring data ini berguna bila jumlah item antara satu aspek dengan aspek yang lain tidak sama, padahal secara teoritis aspek tersebut memiliki bobot yang sama besar
Data_sc=scale(Data[,-5],center = T,scale = T)

4.2 Perbandingan 2 Metode

Dalam membandingkan 2 metode penelitian yaitu K-Means dan Expectation Maximization (EM) maka akan dibandingkan berdasarkan data mentah dan data pca.

4.2.1 Data Mentah

K-Means

Peneliti akan menentukan k atau kelompok optimum menggunakan metode Elbow dan Silhouette

Metode Elbow

# Elbow
fviz_nbclust(Data_sc, kmeans, method = "wss")

Metode elbow menggunakan nilai total wss (whitin sum square) sebagai penentu klaster yang optimal. Dari hasil output tersebut, dapat diketahui bahwa klaster paling optimal yaitu k = 3 dilihat dari dimana titik mulai landai yaitu pada titik ketiga. Meskipun pada visualisasinya k = 3. Untuk menjadi pembanding, digunakan metode yang lain, yaitu metode silhouette.

Metode Silhouette

# Silhouette
fviz_nbclust(Data_sc, kmeans, method = "silhouette")

Metode silhouette digunakan untuk menduga kualitas dari klaster yang terbentuk melalui pendekatan nilai rata-rata. Jika nilai rata-ratanya semakin tinggi maka jumlah klaster yang terbetuk akan semakin baik (optimal). Dari hasil output di atas banyaknya klaster optimal yang terbentuk yaitu k =3 karena nilai silhouette pada k =3 merupakan setelah nilai yang tertinggi dari lainnya.

Setelah mendapatkan kelompok yang optimum, maka mari kita membuat klaster dengan k-means.

km_raw=kmeans(Data_sc, centers=3)
km_raw
## K-means clustering with 3 clusters of sizes 50, 53, 47
## 
## Cluster means:
##   Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1  -1.01119138  0.85041372   -1.3006301  -1.2507035
## 2  -0.05005221 -0.88042696    0.3465767   0.2805873
## 3   1.13217737  0.08812645    0.9928284   1.0141287
## 
## Clustering vector:
##   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
##   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
##  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40 
##   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
##  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60 
##   1   1   1   1   1   1   1   1   1   1   3   3   3   2   2   2   3   2   2   2 
##  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80 
##   2   2   2   2   2   3   2   2   2   2   3   2   2   2   2   3   3   3   2   2 
##  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 
##   2   2   2   2   2   3   3   2   2   2   2   2   2   2   2   2   2   2   2   2 
## 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 
##   3   2   3   3   3   3   2   3   3   3   3   3   3   2   2   3   3   3   3   2 
## 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 
##   3   2   3   2   3   3   2   3   3   3   3   3   3   2   2   3   3   3   2   3 
## 141 142 143 144 145 146 147 148 149 150 
##   3   3   2   3   3   3   2   3   3   2 
## 
## Within cluster sum of squares by cluster:
## [1] 47.35062 44.08754 47.45019
##  (between_SS / total_SS =  76.7 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Dari hasil output di atas dapat diketahui bahwa dengan menggunakan k=3 diperoleh cluster 1 sebanyak 50 data, cluster 2 sebesar 53 data, dan cluster 3 sebanyak 47 data.

Expectation Maximization

Kelompok optimum yang kita dapat adalah 3 maka untuk pengklasterannya adalah sebagai berikut.

emobj <- exhaust.EM(Data_sc,nclass = 3) 
emobj <- shortemcluster(Data_sc, emobj,maxiter = 1000)
em_raw <- emcluster(Data_sc, emobj, assign.class = TRUE)
em_raw
## Method: 
##  n = 150, p = 4, nclass = 3, flag = , logL = -288.5244.
##  conv.iter = 1, conv.eps = 5.039074e-10,
## nc: 
## [1] 45 55 50
## pi: 
## [1] 0.2992 0.3675 0.3333

Dari hasil output di atas dapat diketahui bahwa dengan menggunakan k=3 diperoleh cluster 1 sebanyak 50 data, cluster 2 sebesar 55 data, dan cluster 3 sebanyak 45 data.

Kita buat data baru untuk K-means dan EM.

dat_clust_raw=data.frame(Data_sc,"Species"=as.factor(Data$Species), 
          kmeans=as.factor(km_raw$cluster), EM=as.factor(em_raw$class))
head(dat_clust_raw, 5)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species kmeans EM
## 1   -0.8976739  1.01560199    -1.335752   -1.311052  setosa      1  3
## 2   -1.1392005 -0.13153881    -1.335752   -1.311052  setosa      1  3
## 3   -1.3807271  0.32731751    -1.392399   -1.311052  setosa      1  3
## 4   -1.5014904  0.09788935    -1.279104   -1.311052  setosa      1  3
## 5   -1.0184372  1.24503015    -1.335752   -1.311052  setosa      1  3

Lalu peneliti visualisasikan data mentah dengan membandingkan K-means dan EM.

dat_raw=dat_clust_raw %>% melt(id.var=colnames(iris[,-5]))
## Warning: attributes are not identical across measure variables; they will be
## dropped
dat_raw %>% ggplot(aes(x=Sepal.Length,y=Petal.Width, color=value))+geom_point()+
  facet_wrap(~variable)+theme_grey()+
  theme(strip.background =element_rect(fill="darkred"))+
  theme(strip.text = element_text(colour = 'white'))+guides(color=FALSE)
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.

4.2.2 PCA

K-Means

Peneliti akan menentukan k atau kelompok optimum menggunakan metode Elbow dan Silhouette

fviz_nbclust(pca_iris$ind$coord, kmeans, method = "wss")

fviz_nbclust(pca_iris$ind$coord, kmeans, method = "silhouette")

Hasil metode elbow dan Silhouette PCA memberikan hasil yang sama dengan data mentah.

km_pca=kmeans(pca_iris$ind$coord, centers=3)
km_pca
## K-means clustering with 3 clusters of sizes 50, 53, 47
## 
## Cluster means:
##        Dim.1      Dim.2
## 1 -2.2247532  0.2889275
## 2  0.5726214 -0.8072089
## 3  1.7210366  0.6028872
## 
## Clustering vector:
##   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
##   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
##  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40 
##   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
##  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60 
##   1   1   1   1   1   1   1   1   1   1   3   3   3   2   2   2   3   2   2   2 
##  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80 
##   2   2   2   2   2   3   2   2   2   2   3   2   2   2   2   3   3   3   2   2 
##  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 
##   2   2   2   2   2   3   3   2   2   2   2   2   2   2   2   2   2   2   2   2 
## 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 
##   3   2   3   3   3   3   2   3   3   3   3   3   3   2   2   3   3   3   3   2 
## 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 
##   3   2   3   2   3   3   2   3   3   3   3   3   3   2   2   3   3   3   2   3 
## 141 142 143 144 145 146 147 148 149 150 
##   3   3   2   3   3   3   2   3   3   2 
## 
## Within cluster sum of squares by cluster:
## [1] 44.87957 35.08595 35.05524
##  (between_SS / total_SS =  80.0 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

3 klaster yang dibentuk yaitu 50, 53 dan 47. lalu nilai untuk sum of squares didalma cluster yaitu 80%.

Expectation Maximization

emobj_pca <- exhaust.EM(pca_iris$ind$coord, nclass = 3)
emobj_pca <- shortemcluster(pca_iris$ind$coord, emobj_pca,maxiter = 1000)
em_pca <- emcluster(pca_iris$ind$coord, emobj_pca, assign.class = TRUE)
em_pca
## Method: 
##  n = 150, p = 2, nclass = 3, flag = , logL = -373.7758.
##  conv.iter = 1, conv.eps = 1.561881e-11,
## nc: 
## [1]   3 101  46
## pi: 
## [1] 0.01985 0.67274 0.30741

Dari hasil output di atas dapat diketahui bahwa dengan menggunakan k=3 diperoleh cluster 1 sebanyak 87 data, cluster 2 sebesar 13 data, dan cluster 50 sebanyak 45 data.

Kita buat data baru untuk K-means dan EM.

dat_clust_pca=data.frame(pca_iris$ind$coord,"Species"=iris$Species,
              kmeans=as.factor(km_pca$cluster), EM=as.factor(em_pca$class))
head(dat_clust_pca, 5)
##       Dim.1      Dim.2 Species kmeans EM
## 1 -2.264703  0.4800266  setosa      1  3
## 2 -2.080961 -0.6741336  setosa      1  3
## 3 -2.364229 -0.3419080  setosa      1  3
## 4 -2.299384 -0.5973945  setosa      1  3
## 5 -2.389842  0.6468354  setosa      1  3

Lalu kita visualisasikan data mentah dengan membandingkan K-means dan EM.

dat_pca=dat_clust_pca %>% melt(id.var=c("Dim.1","Dim.2"))
## Warning: attributes are not identical across measure variables; they will be
## dropped
dat_pca %>% ggplot(aes(x=Dim.1,y=Dim.2, color=value))+geom_point()+facet_wrap(~variable)+theme_grey()+
  theme(strip.background =element_rect(fill="darkred"))+
  theme(strip.text = element_text(colour = 'white'))+guides(color=FALSE)
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.

4.3 Akurasi 2 Metode

Disini peneliti ingin menguji keakurasian setiap metode terhadap data mentah dan PCA data dari iris data. sebelum melakukan perhitungan akurasi, peneliti membuat algoritma modus dari data :

Mode <- function(x){
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}

4.3.1 Akurasi data mentah

dat_clust_raw_acc <- dat_clust_raw

#algortima konversi spesies data raw
dat_clust_raw_acc$Species <- ifelse(dat_clust_raw_acc$Species=="setosa", 1, 
                                ifelse(dat_clust_raw_acc$Species=="versicolor", 2, 3))

#algoritma konversi hasil klaster K-Means
dat_clust_raw_acc$kmeans <- ifelse(dat_clust_raw_acc$kmeans == Mode(dat_clust_raw_acc$kmeans[1:50]), 
                               1, 
                               ifelse(dat_clust_raw_acc$kmeans == Mode(dat_clust_raw_acc$kmeans[51:100]), 2, 3))

#Konversi hasil klaster EM
dat_clust_raw_acc$EM <- ifelse(dat_clust_raw_acc$EM == Mode(dat_clust_raw_acc$EM[1:50]), 
                           1, 
                           ifelse(dat_clust_raw_acc$EM == Mode(dat_clust_raw_acc$EM[51:100]), 2, 3))

#cetroid sesuai K-Means dan akurasi
kmeans_correct <- sum((dat_clust_raw_acc$Species-dat_clust_raw_acc$kmeans)==0, na.rm = T)
kmeans_acc <- kmeans_correct/150

#cetroid sesuai EM dan akurasi
em_correct <- sum((dat_clust_raw_acc$Species-dat_clust_raw_acc$EM)==0, na.rm = T)
em_acc <- em_correct/150

#Menggabungkan hasil centroid..
cluster_acc <- data.frame(Accuracy = rbind(kmeans_acc, em_acc),
                          Correct_Point = rbind(kmeans_correct, em_correct), 
                          row.names = c("K-Means", "EM"))
cluster_acc
##          Accuracy Correct_Point
## K-Means 0.8333333           125
## EM      0.9666667           145

Dari hasil yang peneliti dapat, menunjukkan metode EM memberikan akurasi paling tinggi yaitu 96.7% dibandingkan dengan metode K-Means . Centroid yang dimiliki oleh EM yaitu 145 lebih banyak dari metode K-means yaitu 79.

Akurasi PCA Data

dat_clust_pca_acc<-dat_clust_pca

#Konversi spesies data raw
dat_clust_pca_acc$Species <- ifelse(dat_clust_pca_acc$Species=="setosa", 1, 
                                ifelse(dat_clust_pca_acc$Species=="versicolor", 2, 3))

#Konversi hasil klaster K-Means
dat_clust_pca_acc$kmeans <- ifelse(dat_clust_pca_acc$kmeans == Mode(dat_clust_pca$kmeans[1:50]), 
                               1, 
                               ifelse(dat_clust_pca_acc$kmeans == Mode(dat_clust_pca$kmeans[51:100]), 2, 3))

#Konversi hasil klaster EM
dat_clust_pca_acc$EM <- ifelse(dat_clust_pca_acc$EM == Mode(dat_clust_pca_acc$EM[1:50]), 
                           1, 
                           ifelse(dat_clust_pca_acc$EM == Mode(dat_clust_pca_acc$EM[51:100]), 2, 3))

#Menghitung cetroid sesuai K-Means dan akurasi
kmeans_correct_pca <- sum((dat_clust_pca_acc$Species-dat_clust_pca_acc$kmeans)==0, na.rm = T)
kmeans_acc_pca <- kmeans_correct_pca/150

#Menghitung cetroid sesuai EM dan akurasi
em_correct_pca <- sum((dat_clust_pca_acc$Species-dat_clust_pca_acc$EM)==0, na.rm = T)
em_acc_pca <- em_correct_pca/150

#Menggabungkan hasil perhitungan cetroid yang sesuai.
cluster_acc_pca <- data.frame(Accuracy = rbind(kmeans_acc_pca, em_acc_pca),
                          Correct_Point = rbind(kmeans_correct_pca, em_correct_pca), 
                          row.names = c("K-Means", "EM"))
cluster_acc_pca
##          Accuracy Correct_Point
## K-Means 0.8333333           125
## EM      0.6400000            96

Dari hasil output akurasi data PCA , peneliti mendapat hasil akurasi K-means lebih tinggi dari metode EM yaitu 83.3% dengan centroid yang sesuai yaitu 125.

BAB 5
KESIMPULAN DAN SARAN


5.1 Kesimpulan

      Setelah dilakukan penelitian pada data iris menggunakan metode K-means dan Expectation Mazimization untuk mengidentifikasi perbedaan 2 metode, maka kesimpulan yang dapat diambil dari hasil penelitian peneliti dalam analisis data iris adalah sebagai berikut :
  1. Analisis data yang digunakan dengan metode K-Means dan Expectation Mazimization dapat membantu mengelompokkan jumlah data berdasarkan jenisnya, meskipun hasil yang didapatkan berbeda.
  2. Dengan adanya clustering dapat membantu untuk mempercepat pengolahan data dalam mengelompokkan jumlah data berdasarkan jenisnya.
  3. Perbandingan metode K-Means dan Expectation Mazimization dalam akurasi memberikan nilai yang berbeda. Pada data mentah menunjukkan akurasi Expectation Maximization lebih tinggi, sedangkan pada data PCA menunjukkan akurasi K-means lebih tinggi.

5.2 Saran

  Penerapan dalam penelitian ini masih sederhana, sehingga dibutuhkan analisis dan penambahan beberapa fungsi pendukung lainnya yang dapat memaksimalkan fungsi dan efektifitas dari analisa ini.

Daftar Pustaka


Dunja Mladenic, Nada Lavrac, Marko Bohanec and Steve Moyle (2003). Data Mining and Decision Support-Integration and Collaboration, Kluwer Academic Publishers

Jhon Parra (2019). Unsupervised Learning : kMeans vs EM Algorithm.
https://www.rpubs.com/statscol/unsupervised_learning

Fauziyah Dewi (10 Juli 2019). K-Means Clustering in R.
https://medium.com/@fauziyahdewi16/k-means-clustering-in-r-ce0194685b9b

Chaturvedi, A.D., Green, P.E. and Carroll, J.D. (2001). K-Modes Clustering. Journal of Classification.