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
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 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) :
- Fungsi Klasifikasi ( classification )
Data mining dapat digunakan untuk mengelompokkan data-data yang jumlahnya besar menjadi data-data yang lebih kecil. - Fungsi Segmentasi ( Segmentation )
Disini data mining juga digunakan untuk melakukan segementasi (pembagian) terhadap data berdasarkan karakteristik tertentu. - Fungsi Asosiasi ( Association )
Disini data mining juga digunakan untuk mencari hubungan antara karakteristik tertentu. - 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
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
2.4 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
2.6 EMCluster
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
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
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
- Inisialisasi cluster centers sebanyak suatu nilai k. Nilai k bisa merupakan input dari user atau merupakan nilai yang didapatkan dengan memanfaatkan penggunaan algoritma lain.
- Iterasikan 2 langkah yang menjadi dasar penamaan algoritma berikut sampai mencapai suatu titik konvergensi yang telah ditentukan sebelumnya:
- langkah expectation
- 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
fviz_nbclust(Data, kmeans, method = "wss")
3.2.4 Metode Silhouette
fviz_nbclust(Data, kmeans, method = "silhouette")
3.2.5 Principal Component Analysis (PCA)
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[,-5],scale.unit = T,ncp = 2,graph = F) pca_iris
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.
<- iris
Data 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:
<-na.omit(Data) Data
4.1.4 Standarisasi data
=scale(Data[,-5],center = T,scale = T) Data_sc
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.
=kmeans(Data_sc, centers=3)
km_raw 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.
<- exhaust.EM(Data_sc,nclass = 3)
emobj <- shortemcluster(Data_sc, emobj,maxiter = 1000)
emobj <- emcluster(Data_sc, emobj, assign.class = TRUE)
em_raw 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.
=data.frame(Data_sc,"Species"=as.factor(Data$Species),
dat_clust_rawkmeans=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_clust_raw %>% melt(id.var=colnames(iris[,-5])) dat_raw
## Warning: attributes are not identical across measure variables; they will be
## dropped
%>% ggplot(aes(x=Sepal.Length,y=Petal.Width, color=value))+geom_point()+
dat_raw 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.
=kmeans(pca_iris$ind$coord, centers=3)
km_pca 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
<- exhaust.EM(pca_iris$ind$coord, nclass = 3)
emobj_pca <- shortemcluster(pca_iris$ind$coord, emobj_pca,maxiter = 1000)
emobj_pca <- emcluster(pca_iris$ind$coord, emobj_pca, assign.class = TRUE)
em_pca 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.
=data.frame(pca_iris$ind$coord,"Species"=iris$Species,
dat_clust_pcakmeans=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_clust_pca %>% melt(id.var=c("Dim.1","Dim.2")) dat_pca
## Warning: attributes are not identical across measure variables; they will be
## dropped
%>% ggplot(aes(x=Dim.1,y=Dim.2, color=value))+geom_point()+facet_wrap(~variable)+theme_grey()+
dat_pca 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 :
<- function(x){
Mode <- unique(x)
ux which.max(tabulate(match(x, ux)))]
ux[ }
4.3.1 Akurasi data mentah
<- dat_clust_raw
dat_clust_raw_acc
#algortima konversi spesies data raw
$Species <- ifelse(dat_clust_raw_acc$Species=="setosa", 1,
dat_clust_raw_accifelse(dat_clust_raw_acc$Species=="versicolor", 2, 3))
#algoritma konversi hasil klaster K-Means
$kmeans <- ifelse(dat_clust_raw_acc$kmeans == Mode(dat_clust_raw_acc$kmeans[1:50]),
dat_clust_raw_acc1,
ifelse(dat_clust_raw_acc$kmeans == Mode(dat_clust_raw_acc$kmeans[51:100]), 2, 3))
#Konversi hasil klaster EM
$EM <- ifelse(dat_clust_raw_acc$EM == Mode(dat_clust_raw_acc$EM[1:50]),
dat_clust_raw_acc1,
ifelse(dat_clust_raw_acc$EM == Mode(dat_clust_raw_acc$EM[51:100]), 2, 3))
#cetroid sesuai K-Means dan akurasi
<- sum((dat_clust_raw_acc$Species-dat_clust_raw_acc$kmeans)==0, na.rm = T)
kmeans_correct <- kmeans_correct/150
kmeans_acc
#cetroid sesuai EM dan akurasi
<- sum((dat_clust_raw_acc$Species-dat_clust_raw_acc$EM)==0, na.rm = T)
em_correct <- em_correct/150
em_acc
#Menggabungkan hasil centroid..
<- data.frame(Accuracy = rbind(kmeans_acc, em_acc),
cluster_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
dat_clust_pca_acc
#Konversi spesies data raw
$Species <- ifelse(dat_clust_pca_acc$Species=="setosa", 1,
dat_clust_pca_accifelse(dat_clust_pca_acc$Species=="versicolor", 2, 3))
#Konversi hasil klaster K-Means
$kmeans <- ifelse(dat_clust_pca_acc$kmeans == Mode(dat_clust_pca$kmeans[1:50]),
dat_clust_pca_acc1,
ifelse(dat_clust_pca_acc$kmeans == Mode(dat_clust_pca$kmeans[51:100]), 2, 3))
#Konversi hasil klaster EM
$EM <- ifelse(dat_clust_pca_acc$EM == Mode(dat_clust_pca_acc$EM[1:50]),
dat_clust_pca_acc1,
ifelse(dat_clust_pca_acc$EM == Mode(dat_clust_pca_acc$EM[51:100]), 2, 3))
#Menghitung cetroid sesuai K-Means dan akurasi
<- sum((dat_clust_pca_acc$Species-dat_clust_pca_acc$kmeans)==0, na.rm = T)
kmeans_correct_pca <- kmeans_correct_pca/150
kmeans_acc_pca
#Menghitung cetroid sesuai EM dan akurasi
<- sum((dat_clust_pca_acc$Species-dat_clust_pca_acc$EM)==0, na.rm = T)
em_correct_pca <- em_correct_pca/150
em_acc_pca
#Menggabungkan hasil perhitungan cetroid yang sesuai.
<- data.frame(Accuracy = rbind(kmeans_acc_pca, em_acc_pca),
cluster_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
- Analisis data yang digunakan dengan metode K-Means dan Expectation Mazimization dapat membantu mengelompokkan jumlah data berdasarkan jenisnya, meskipun hasil yang didapatkan berbeda.
- Dengan adanya clustering dapat membantu untuk mempercepat pengolahan data dalam mengelompokkan jumlah data berdasarkan jenisnya.
- 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
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.