UTS Metodologi Penelitian & Optimasi

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






NAMA:  JEFFRY WIJAYA

NIM:  20194920016

PROGRAM STUDI:  STATISTIKA BISNIS





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



BAB I
PENDAHULUAN

1.1 Latar Belakang

Pengelompokan data atau clustering merupakan suatu cara untuk membagi suatu populasi dalam data agar sekumpulan data dalan satu kelompok yang sama miliki kemiripan dibandingkan dengan kelompok lainnya. Menurut Tan (2006), clustering adalah sebuah proses untuk mengelompokan data ke dalam beberapa cluster atau kelompok sehingga data dalam satu cluster memiliki tingkat kemiripan yang maksimum dan data antar cluster memiliki kemiripan yang minimum. Dengan kata lain, tujuan dari clustering adalah memisahkan data menjadi beberapa kelompok dengan sifat yang sama.

Clustering memegang peranan penting dalam aplikasi data mining, misalnya eksplorasi data ilmu pengetahuan, pengaksesan informasi dan text mining, aplikasi basis data spasial, dan analisis web. Adapun beberapa fungsi dari clustering diantaranya, merupakan metode segmentasi data yang sangat berguna dalam prediksi dan analisa masalah bisnis tertentu seperti segmentasi pasar, marketing dan pemetaan zonasi wilayah, dan identifikasi obyek dalam bidang berbagai bidang seperti computer vision maupun image processing.

Hasil clustering yang baik akan menghasilkan tingkat kesamaan yang tinggi dalam satu kelas dan tingkat kesamaan yang rendah antar kelas. Ada 5 data yang sering muncul dalam proses clustering, yaitu: Data Kategorikal, Data Biner, Data Transaksi, Data Simbolik, dan Data Runtun Waktu (Time Series). Pada penelitian ini, akan ada dua metode untuk membandingkan hasil clustering , yaitu : KMeans dan EM(Expectation Maximization) yang akan dipraktekkan untuk data iris pada software RStudio menggunakan packages stats dan EMCluster.

Iris adalah sebuah genus dalam famili Iridaceae yang mencakup 260–300 spesies tumbuhan berbunga. Namun dalam percobaan penelitian ini, digunakan data iris yang merupakan dataset berisikan 150 data diantaranya masing-masing 50 data dikategorikan berdasarkan 3 kelas, yaitu: setosa, versicolor, dan virginica. Data iris mencakup 150 nilai dari panjang dan lebar suatu kelopak dan daun bunga iris berjenis setosa, versicolor, dan virginica.

1.2 Rumusan Masalah

Berdasarkan uraian latar belakang masalah sebelumnya maka rumusan masalah dalam penelitian ini adalah

1.2.1 Apa perbandingan hasil dari clustering data iris menggunakan algoritma K-Means dengan EM.

1.2.2 Apa metode terbaik yang seharusnya diterapkan pada dataset iris.

1.3 Tujuan

Berdasarkan rumusan masalah sebelumnya, maka tujuan dari penelitian ini adalah

1.3.1 Mengetahui perbandingan hasil dari clustering data iris menggunakan algoritma K-Means dengan EM.

1.3.2 Mengetahui algoritma terbaik yang dapat diterapkan pada dataset iris.

1.4 Manfaat

Berdasarkan tujuan sebelumnya, maka manfaat dari penelitian ini adalah.

1.4.1 Dapat mengetahui perbandingan hasil dari clustering data iris menggunakan algoritma K-Means dengan EM.

1.4.2 Dapat memilih algoritma terbaik yang dapat diterapkan pada dataset iris.

1.4.3 Memberikan informasi mengenai clustering.

1.4.4 Memahami cara kerja algoritma K-Means dan EM.


BAB II
KAJIAN PUSTAKA

2.1 Unsupervised Learning

Unsupervised Learning merupakan salah satu jenis algoritma yang digunakan dalam machine learning untuk mengambil kesimpulan dari sebuah dataset. Metode ini hanya akan mempelajari suatu data berdasarkan kedekatannya saja atau yang biasa disebut dengan clustering. Sangat berbeda dengan supervised learning, unsupervised learning merupakan jenis learning yang hanya mempunyai variabel input tapi tidak mempunyai variabel output yang berhubungan. Tujuan dari Machine Learning ini adalah untuk memodelkan struktur data dan menyimpulkan fungsi yang mendeskripsikan data tersebut. Metode unsupervised learning yang paling umum adalah analisis cluster, yang digunakan pada analisa data untuk mencari pola-pola tersembunyi atau pengelompokan dalam data.

Cara kerja algoritma unsupervised learning yaitu akan mencari pola tersembunyi (eksplisit) dari dataset yang diberikan. Unsupervised machine learning bekerja dengan menganalisis data yang tidak berlabel untuk menemukan pola tersembunyi dan menentukan korelasinya. Beberapa contoh algoritma yang dapat digunakan dalam unsupervised learning seperti, K-Means dan EM.

2.2 K-Means

K-Means clustering adalah salah satu algoritma unsupervised learning yang digunakan ketika data yang dimiliki tidak mempunyai label (contohnya data tanpa kategori ataupun kelompok). Tujuan dari algoritma ini adalah untuk membuat kelompok dalam sebuah data dengan jumlah group direpresentasikan dengan variabel \(k\). Hasil yang didapatkan dengan menggunakan algoritma K-Means adalah:

  • Centroid dari kluster K, yang dapat digunakan untuk memberi label data baru
  • Label untuk data pelatihan (setiap titik data ditetapkan ke satu cluster)

Algoritma pengelompokan K-means digunakan untuk mencari grup yang belum diberi label secara eksplisit dalam data. Ini dapat digunakan untuk mengkonfirmasi asumsi bisnis tentang jenis grup yang ada atau untuk mengidentifikasi grup yang tidak dikenal dalam kumpulan data yang kompleks. Ada beberapa contoh penggunaan metode K-Means dalam bisnis diantaranya:

2.2.1 Segmentasi perilaku

  • Segmentasikan berdasarkan riwayat pembelian.
  • Segmen berdasarkan aktivitas pada aplikasi, situs web, atau platform.
  • Mendefinisikan persona berdasarkan minat.
  • Memuat profil berdasarkan pemantauan aktivitas.

2.2.2 Kategorisasi inventaris

  • Mengelompokkan inventaris menurut aktivitas penjualan.
  • Mengelompokkan inventaris berdasarkan metrik manufaktur.

2.2.3 Mengurutkan pengukuran sensor

  • Deteksi jenis aktivitas pada sensor gerak.
  • Gambar-gambar.
  • Audio yang terpisah.
  • Mengidentifikasi kelompok dalam pemantauan kesehatan.

2.2.4 Mendeteksi bot atau anomali

  • Memisahkan aktivitas-aktivitas yang valid dari bot.
  • Mengelompokkan aktivitas yang valid untuk membersihkan outlier yang terdeteksi.

2.3 EM

Algoritma EM dijelaskan dan diberi nama dalam makalah klasik 1977 oleh Arthur Dempster, Nan Laird, dan Donald Rubin. Makalah Dempster-Laird-Rubin pada tahun 1977 menggeneralisasi metode dan membuat sketsa analisis konvergensi untuk kelas masalah yang lebih luas. Terlepas dari penemuan sebelumnya, makalah inovatif Dempster-Laird-Rubin dalam Journal of Royal Statistical Society menerima diskusi yang antusias pada pertemuan Royal Statistical Society dengan Sundberg yang menyebut makalah itu brilliant. Makalah Dempster-Laird-Rubin menetapkan metode EM sebagai alat analisis statistik yang penting.

Algoritma EM digunakan untuk menemukan parameter maximum likelihood dari model statistik dalam kasus di mana persamaan tidak dapat diselesaikan secara langsung. Biasanya model ini melibatkan variabel laten selain parameter yang tidak diketahui dan pengamatan data yang diketahui. Artinya, ada nilai yang hilang di antara data, atau model dapat dirumuskan lebih sederhana dengan mengasumsikan adanya titik data tambahan yang tidak teramati. (Misalnya, model campuran dapat dijelaskan lebih sederhana dengan mengasumsikan bahwa setiap titik data yang diamati memiliki titik data yang tidak teramati yang sesuai, atau variabel laten, yang menentukan komponen campuran yang dimiliki oleh setiap titik data.)

Algoritma EM (Expectation-Maximization) adalah algoritma perbaikan iteratif populer yang dapat digunakan untuk menemukan estimasi parameter. Hal ini dapat dilihat sebagai perpanjangan dari paradigma k-means, yang menetapkan objek ke cluster yang paling mirip, berdasarkan cluster mean. Alih-alih menetapkan setiap objek ke cluster khusus, EM menetapkan setiap objek ke cluster sesuai dengan bobot yang mewakili probabilitas keanggotaan. Dengan kata lain, tidak ada batasan ketat antar cluster. Oleh karena itu, cara baru dihitung berdasarkan ukuran tertimbang. EM dimulai dengan perkiraan awal atau “tebakan” dari parameter model campuran (secara kolektif disebut sebagai vektor parameter).

Dalam prakteknya, setiap cluster dapat direpresentasikan secara matematis dengan distribusi probabilitas parametrik. Seluruh data merupakan campuran dari distribusi ini, dimana setiap distribusi individu biasanya disebut sebagai distribusi komponen. Oleh karena itu dapat dilakukan pengelompokan data menggunakan model kepadatan campuran terbatas dari distribusi probabilitas k, di mana setiap distribusi mewakili sebuah cluster. Masalahnya adalah untuk memperkirakan parameter dari distribusi probabilitas sehingga paling cocok dengan data. Ada dua cluster. Masing-masing mengikuti distribusi normal atau Gaussian dengan mean dan standar deviasinya sendiri.


BAB III
METODOLOGI PENELITIAN

3.1 Jenis Penelitian

Jenis penelitian yang digunakan adalah penelitian kuantitatif dimana data yang dinyatakan dalam angka dan dianalisis dengan teknik statistik. Metode penelitian kuantitatif merupakan jenis penelitian yang sistematis, terencana, dan terstruktur dari awal hingga pembuatan desain penelitian. Metode yang digunakan adalah metode K-Means dan EM. Secara singkat, metode K-Means adalah membuat kelompok dalam sebuah data dengan jumlah group direpresentasikan dengan variabel \(k\), sedangkan EM merupakan algoritma perbaikan iteratif populer yang dapat digunakan untuk menemukan estimasi parameter. Hal ini dapat dilihat sebagai perpanjangan dari paradigma k-means, yang menetapkan objek ke cluster yang paling mirip, berdasarkan cluster mean.

3.2 Metode Pengumpulan Data

Penelitian ini menggunakan data sekunder yang merupakan tipikal penelitian kuantitatif, dataset yang digunakan sudah tersedia di RStudio. Dataset yang digunakan sudah dikumpulkan oleh pihak ke-3 yang memiliki otoritas terpercaya yaitu Fisher atau dikenal sebagai Anderson. Penulis memilih cara ini untuk mempercepat penulisan contoh penelitian, karena tidak dibutuhkan waktu yang lama mengakses dataset, dan juga tidak perlu menyebar kuesioner ke lapangan.

3.3 Lokasi Pengumpulan Data

Dalam hal ini, lokasi pengumpulan data adalah melalui akses internet dan lokasi bisa dimana saja tergantung penulis mengakses datanya darimana. Data tersedia dalam R dengan nama data iris dan dapat diakses pada link github ini.

3.4 Objek Penelitian

Adapun yang menjadi objek dalam penelitian kuantitatif ini dibagi berdasarkan metode atau jenis penelitian, termasuk yang berikut ini:

  • Objek Penelitian Korelasi: dilakukan juga analisis korelasi untuk melihat keterkaitan antar variabel.
  • Objek Penelitian Komparatif: melakukan perbandingan variabel-varibel berdasarkan metode-metode yang digunakan terhadap data iris/

3.5 Flow Chart

Lebih detail tentang metodologi penelitian ini ditunjukkan pada gambar berikut.


BAB IV
HASIL DAN PEMBAHASAN

4.1 Import Data

Langkah pertama yang harus dilakukan adalah mengimport untuk menunjukan data iris yang sudah dimiliki. Untuk data iris dapat diakses di sini.

4.1.1 Data

4.1.1 Data Iris


Setelah data sudah diimport, maka langkah selanjutnya adalah melihat struktur data, ringkasan statistik, dan standar deviasi masing-masing variabel yang tersedia.

4.1.2 Struktur 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 ...
4.1.2 Struktur Data

Dari hasil yang diperlihatkan diatas, disimpulkan bahwa data species adalah faktor sehingga untuk menganalisa variabel ini, lebih tepat dengan melihat frekuensi atau persentasi antar faktor yang akan diperlihatkan degan histogaram atau pie chart setelah bagian ini. Dapat diketahui juga bahwa variabel species merupakan satu-satunya vektor dalam data yang kita miliki, diikuti dengan 4 data numerik yaitu, sepal length, sepal width, petal length, dan petal width.

4.1.3 Ringkasan Statistik 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  
##                 
##                 
## 
4.1.3 Ringkasan Statistik Data

Berdasarkan ringkasan statistik yang diperoleh, dapat diketahui bahwa rata-rata panjang, lebar kelopak dan panjang, lebar daun bunga berturut-turut adalah : 5.843, 3.057, 3.758, dan 1.199.

4.1.4 Simpangan Baku

4.1.4 Tabel Standar Deviasi

Standar diviasi atau simpangan baku biasa digunakan untuk mengukur sebaran variansi data. Semakin besar nilai standar diviasinya makan semakin beragam (semakin luas variansi sebaran datanya).

4.2 Analisis Korelasi

##              Sepal.Length Sepal.Width Petal.Length Petal.Width
## Sepal.Length    1.0000000  -0.1175698    0.8717538   0.8179411
## Sepal.Width    -0.1175698   1.0000000   -0.4284401  -0.3661259
## Petal.Length    0.8717538  -0.4284401    1.0000000   0.9628654
## Petal.Width     0.8179411  -0.3661259    0.9628654   1.0000000
4.2.1 Tabel Korelasi


Berdasarkan analisis korelasi yang ditunjukan diatas, maka dapat diketahui bahwa data iris memiliki nilai korelasi yang bervariasi. Nilai negatif menyatakan hubungan yang bertolak belakang, sedangkan nilai positif menyatakan adanya hubungan searah antarvariabel. Nilai korelasi diatas 0.8 (>0.8) menunjukan adanya hubungan sangat kuat antara kedua variabel.

4.3 Visualisasi Data

4.3.1 Plot Bar Frekuensi Data Iris Berdasarkan Spesies


Dapat diketahui bahwa, jumlah data dengan spesies setosa, versicolor, dan virginica masing-masing adalah 50 data. Dengan nilai uji korelasi yang kita dapatkan, dapat diketahui akan ada 3 hubungan yang akan kita gunakan pada kasus ini, yaitu Sepal Length-Petal Length, Sepal Length-Petal Width, dan Petal Length-Petal Width. Berikut sebaran datanya berdasarkan variabel masing-masing dan scatterplot untuk data iris.

4.3.2 Plot Histogram Sebaran Data Berdasarkan Variabel


4.4 K-Means

4.4.1 Mencari \(k\) Optimal

Untuk mencari \(k\) optimal terdapat 3 metode yang sering digunakan, yaitu : Metode siku (Elbow method), Metode siluet (Silhouette method), dan Statistik kesenjangan (Gap statistic). Metode siku adalah dengan menghitung algoritma pengelompokan untuk beberapa nilai \(k\). Ini dapat dilakukan dengan membuat variasi dalam \(k\) dari 1 hingga 10 cluster. kemudian menghitung jumlah total intra-cluster kuadrat dan lanjutkan ke plot berdasarkan jumlah cluster \(k\). Metode siluet adalah metode dengan menggunakan fungsi siluet dalam paket cluster, dapat dihitung luas siluet rata-rata menggunakan fungsi k-means. Di sini, cluster optimal akan memiliki rata-rata tertinggi. Untuk menghitung metode statistik gap, dapat menggunakan fungsi clusGap() untuk menyediakan statistik gap serta kesalahan standar untuk output yang diberikan. Namun di dalam R, terdapat packages yang dapat digunakan untuk mempersingkat ketiga metode diatas, yaitu:

4.4.1 Plot Kluster Optimal Menggunakan Elbow Method, Silhouette Method, dan Gap Stastistic Method


  • Elbow method menyarankan menggunakan 3 klaster.
  • Silhouette method menyarankan menggunakan 2 klaster .
  • Gap statistic method menyarankan menggunakan 4 klaster.

Sehingga dapat kita gunakan 3 klaster sebagai nilai rata-rata dari ke-3 metode tersebut.

4.4.2 Hasil Klastering

##    
##     setosa versicolor virginica
##   1     50          0         0
##   2      0         48        14
##   3      0          2        36
4.4.2 Hasil Clustering Menggunakan K-Means


Dari tabel diatas, dapat dilihat bahwa pada klaster 1 terdapat 50 data setosa. Pada klaster 2 terdapat 48 data versicolor dan 14 data virginica. Sedangkan pada klaster 3 terdapat 2 data versicolor dan 26 data virginica. Hal ini menunjukkan bahwa klaster 1 merujuk kepada spesies setosa, klaster 2 merujuk pada spesies versicolor, dan klaster 3 merujuk pada spesies virginica. Dapat disimpulkan pada uji K-means terdapat 16 data yang berbeda dari data aslinya.

4.5 Algoritma EM

##    
##     setosa versicolor virginica
##   1     50          0         0
##   2      0         45         0
##   3      0          5        50
4.5.1 Hasil Clustering Menggunakan EM


Dari tabel diatas, dapat dilihat bahwa pada klaster 1 terdapat 50 data setosa. Pada klaster 2 terdapat 45 data versicolor. Sedangkan pada klaster 3 terdapat 5 data versicolor dan 50 data virginica. Hal ini menunjukkan bahwa klaster 1 merujuk kepada spesies setosa, klaster 2 merujuk pada spesies versicolor, dan klaster 3 merujuk pada spesies virginica. Dapat disimpulkan pada uji K-means terdapat 5 data yang berbeda dari data aslinya.

4.6 Perbandingan Hasil K-Means dan EM Terhadap Data Asli

4.6.1 Plot Data Iris Korelasi 1(Sepal Length-Petal Length) Dibandingkan Ketika Menggunakan Metode K-Means dan EM


Dapat dilihat bahwa metode EM Clustering memiliki lebih sedikit data yang berbeda dari data iris. Sehingga dapat disimpulkan bahwa metode EM lebih baik untuk melakukan clustering pada data iris.

4.6.2 Plot Data Iris Korelasi 2(Sepal Length-Petal Width) Dibandingkan Ketika Menggunakan Metode K-Means dan EM


Dapat dilihat bahwa metode EM Clustering memiliki lebih sedikit data yang berbeda dari data iris. Sehingga dapat disimpulkan bahwa metode EM lebih baik untuk melakukan clustering pada data iris.

4.6.3 Plot Data Iris Korelasi 3(Petal Length-Petal Width) Dibandingkan Ketika Menggunakan Metode K-Means dan EM


Dari hasil output yang dihasilkan pada tahapan clustering menggunakan algoritma K-Means dan EM, dapat dilihat bahwa metode EM Clustering memiliki lebih sedikit data yang berbeda dari data iris. Hal ini dikarenakan metode EM hanya memiliki 5 data yang berbeda dari data aslinya sedangkan metode K-Means memiliki 16 data. Oleh sebab itu, dapat disimpulkan algoritma terbaik untuk menklasterisasi data iris adalah Algoritma EM, karena memiliki tingkat keakuratan yang lebih tinggi dibandingkan K-Means.


BAB V
KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil output yang dihasilkan pada tahapan perbandingan hasil K-Means dan EM terhadap data asli, dapat dilihat bahwa algoritma K-Means memiliki 16 data yang berbeda dengan data asli sedangkan algoritma EM memiliki 5 data yang berbeda dengan data asli. Keakurataan dari cluster metode K-Means adalah 89.33%, sedangkan EM adalah 96.66%. Oleh karena itu, dapat disimpulkan bahwa algoritma terbaik untuk menklasterisasi data iris adalah Algoritma EM, karena memiliki tingkat keakuratan yang lebih tinggi dibandingkan K-Means.

5.2 Saran

Karena kurang sempurnanya laporan ini, disarankan peneliti selanjutnya menggunakan dataset yang belum memiliki karakteristik tersendiri (dalam dataset ini spesies bunga iris) untuk lebih mengerti sercara mendalam algoritma K-Means dan EM sehingga peneliti selanjutnya dapat memaksimalkan potensi dari kedua algoritma tersebut. Selain itu peneliti juga dapat melakukan metode lainnya untuk mencari metode terbaik diluar metode K-Means dan EM.


DAFTAR PUSTAKA

Gan, G., Ma, C., & Wu, a. J. (2007). Data Clustering: Theory, Algorithms, and Applications (ASA-SIAM Series on Statistics and Applied Probability). SIAM, Society for Industrial and Applied Mathematics.
Charu C. Aggarwal, C. K. (2013). Data Clustering: Algorithms and Applications. Chapman and Hall/CRC.
Jiawei Han, M. K. (2006). Data Mining: Concepts and Techniques. Morgan Kaufmann.
https://socs.binus.ac.id/2017/03/09/clustering/
https://www.dqlab.id/mengenal-leboh-dalam-algoritma-unsupervised-learning
https://blogs.oracle.com/ai-and-datascience/post/introduction-to-k-means-clustering
http://p2k.unkris.ac.id/IT/2-3065-2962/Expectation%EF%BF%BDmaximization-algorithm_18760_p2k-unkris.html
https://www.kaggle.com/baktisiregar/contoh-penelitian-dengan-r-analisis-klustering#Bab-IV-Hasil-dan-Diskusi


LAMPIRAN

Kode

datairis <- iris
datairis                                                # menunjukan data pada data iris
4.1.1 Data Iris




str(datairis)                                           # melihat struktur data
4.1.2 Struktur Data




summary(datairis)                                       # ringkasan statistik data pelanggan
4.1.3 Ringkasan Statistik Data




data.frame(lapply(select_if(datairis, is.numeric), sd)) # standar diviasi semua variabel
4.1.4 Tabel Standar Deviasi




cor(select_if(datairis, is.numeric))
4.2.1 Tabel Korelasi




plotSp <- ggplot(data=datairis, aes(x=Species, fill=Species)) +
                 geom_bar() 
plotSp
4.3.1 Plot Bar Frekuensi Data Iris Berdasarkan Spesies




plotSL <- ggplot(datairis, aes(x = Sepal.Length))+
          geom_histogram(bins=20, fill = "brown", colour = "white")
plotSW <- ggplot(datairis, aes(x = Sepal.Width))+
          geom_histogram(bins=20, fill = "red", colour = "white")
plotPL <- ggplot(datairis, aes(x = Petal.Length))+
          geom_histogram(bins=20, fill = "tomato", colour = "white")
plotPW <- ggplot(datairis, aes(x = Petal.Width))+
          geom_histogram(bins=20, fill = "orange", colour = "white")
ggarrange(plotSL, plotSW, plotPL, plotPW, labels = c("A", "B", "C", "D"),
  common.legend = TRUE, legend = "bottom"
  )
4.3.2 Plot Histogram Sebaran Data Berdasarkan Variabel




library(NbClust)
library(factoextra)
ElbowM      <- fviz_nbclust(datairis[,1:4], kmeans, method = "wss")
SilhouetteM <- fviz_nbclust(datairis[,1:4], kmeans, method = "silhouette")
GapM        <- fviz_nbclust(datairis[,1:4], kmeans, method = "gap_stat")

ggarrange(ElbowM, SilhouetteM, GapM,
  common.legend = TRUE, legend = "bottom")
4.4.1 Plot Kluster Optimal Menggunakan Elbow Method, Silhouette Method, dan Gap Stastistic Method




set.seed(5)
cluster <- kmeans(datairis[,1:4],3,iter.max=100,nstart=50,algorithm="Lloyd")

table(cluster$cluster,datairis$Species)
4.4.2 Hasil Clustering Menggunakan K-Means




library(EMCluster)
library(reshape2)

set.seed(3)
emobj      <- exhaust.EM(datairis[,1:4],nclass = 3) 
emobj      <- shortemcluster(datairis[,1:4], emobj,maxiter = 1000)
em_klaster <- emcluster(datairis[,1:4], emobj, assign.class = TRUE)

table(em_klaster$class,datairis$Species)
4.5.1 Hasil Clustering Menggunakan EM




# Data Iris
set.seed(1)
plotDI_SLPL <- ggplot(datairis, 
               aes(x = Sepal.Length, y = Petal.Length, colour=Species)) + 
                   scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                   labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
               geom_point()+
                   ggtitle("Hubungan Korelasi 1",
                   subtitle = "Data Iris")
set.seed(1)
plotDI_SLPW <- ggplot(datairis, 
               aes(x = Sepal.Length, y = Petal.Width, colour=Species)) + 
                   scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                   labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
               geom_point()+
                   ggtitle("Hubungan Korelasi 2",
                   subtitle = "Data Iris")
set.seed(1)
plotDI_PLPW <- ggplot(datairis, 
               aes(x = Petal.Length, y = Petal.Width, colour=Species)) + 
                   scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                   labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
               geom_point()+
                   ggtitle("Hubungan Korelasi 3",
                   subtitle = "Data Iris")

# K-Means

set.seed(1)
plotKM_SLPL <- ggplot(datairis, 
               aes(x = Sepal.Length, y = Petal.Length)) + 
                   geom_point(stat = "identity", aes(color = as.factor(cluster$cluster))) +
                   scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                   labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
                   ggtitle("Hubungan Korelasi 1",
                   subtitle = "Menggunakan K-means Clustering")

set.seed(1)
plotKM_SLPW <- ggplot(datairis, 
               aes(x = Sepal.Length, y = Petal.Width)) + 
                   geom_point(stat = "identity", aes(color = as.factor(cluster$cluster))) +
                   scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                   labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
                   ggtitle("Hubungan Korelasi 2",
                   subtitle = "Menggunakan K-means Clustering")

set.seed(1)
plotKM_PLPW <- ggplot(datairis, 
               aes(x = Petal.Length, y = Petal.Width)) + 
                   geom_point(stat = "identity", aes(color = as.factor(cluster$cluster))) +
                   scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                   labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
                   ggtitle("Hubungan Korelasi 3",
                   subtitle = "Menggunakan K-means Clustering")

# EM

em_dat <- data.frame(datairis[,1:4],"Species"=as.factor(datairis$Species), 
              EM=as.factor(em_klaster$class)) %>% melt(id.var=colnames(datairis[,-5]))

set.seed(1)
plotEM_SLPL <- ggplot(datairis, 
               aes(x = Sepal.Length, y = Petal.Length)) + 
               geom_point(stat = "identity", aes(color = as.factor(em_klaster$class))) +
               scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                       labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
               ggtitle("Hubungan Korelasi 1",
               subtitle = "Menggunakan EM Clustering")

set.seed(1)
plotEM_SLPW <- ggplot(datairis, 
               aes(x = Sepal.Length, y = Petal.Width)) + 
               geom_point(stat = "identity", aes(color = as.factor(em_klaster$class))) +
               scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                       labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
               ggtitle("Hubungan Korelasi 2",
               subtitle = "Menggunakan EM Clustering")

set.seed(1)
plotEM_PLPW <- ggplot(datairis, 
               aes(x = Petal.Length, y = Petal.Width)) + 
               geom_point(stat = "identity", aes(color = as.factor(em_klaster$class))) +
               scale_color_discrete(name=" ",breaks=c("1", "2", "3"),
                       labels=c("Cluster 1", "Cluster 2", "Cluster 3")) +
               ggtitle("Hubungan Korelasi 3",
               subtitle = "Menggunakan EM Clustering")
4.6 Membuat Plot Data Iris dan Hasil Culster Metode K-Means serta EM




HK1 <- ggarrange(plotDI_SLPL, plotKM_SLPL, plotEM_SLPL,
       common.legend = TRUE, legend = "bottom", ncol = 3)

annotate_figure(HK1,
               top = text_grob("Sepal Length-Petal Length", color = "black", face = "bold", size = 14))
4.6.1 Plot Data Iris Korelasi 1(Sepal Length-Petal Length) Dibandingkan Ketika Menggunakan Metode K-Means dan EM




HK2 <- ggarrange(plotDI_SLPW, plotKM_SLPW, plotEM_SLPW,
       common.legend = TRUE, legend = "bottom", ncol = 3)

annotate_figure(HK2,
               top = text_grob("Sepal Length-Petal Width", color = "black", face = "bold", size = 14))
4.6.2 Plot Data Iris Korelasi 2(Sepal Length-Petal Width) Dibandingkan Ketika Menggunakan Metode K-Means dan EM




HK3 <- ggarrange(plotDI_PLPW, plotKM_PLPW, plotEM_PLPW,
       common.legend = TRUE, legend = "bottom", ncol = 3)

annotate_figure(HK3,
               top = text_grob("Petal Length-Petal Width", color = "black", face = "bold", size = 14))
4.6.3 Plot Data Iris Korelasi 3(Petal Length-Petal Width) Dibandingkan Ketika Menggunakan Metode K-Means dan EM