PERBANDINGAN ANTARA ALGORITMA KMEANS DAN ALGORITMA EM PADA DATA IRIS






NAMA: PUTRI ANGELINA WINDJAYA

NIM: 20194920010

PROGRAM STUDI: STATISTIKA BISNIS





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



BAB 1
PENDAHULUAN

1.1 Latar Belakang

Unsupervised learning merupakan salah satu model dari Machine Learning untuk mengetahui pola atau struktur dari suatu dataset yang tidak diklasifikasi atau diberi label [1]. Karena dataset tidak diklasifikasi, maka algortima dari unsupervised learning yaitu mengelompokkan data menjadi beberapa klaster agar dapat diidentifikasi berdasarkan kesamaannya. Algoritma ini biasa disebut clustering atau pengklasteran.

Pengklasteran adalah proses menganalisis kumpulan data untuk menemukan kesamaan dan perbedaan sehingga di dalam satu klaster terdapat kemiripan yang maksimum dan dalam antar klaster terdapat kemiripan yang minimum. Kesamaan suatu data diukur berdasarkan pengukuran numerik. Semakin tinggi nilai kesamaan antar data, maka tingkat kemiripannya semakin tinggi. Begitu pula sebaliknya [2]. Pengklasteran bertujuan untuk mengelompokkan data dan memahami struktur data. Untuk menguji metode Pengklasteran banyak peneliti-peneliti sebelumnya menggunakan data iris, karena data iris merupakan data sederhana dan mudah didapatkan [6].

Iris merupakan genus tumbuhan berbunga yang terdiri dari 260-300 spesies [3]. Dalam penelitian ini akan digunakan sebanyak 150 sampel dari 3 spesies antara lain, Iris Versicolor, Iris Virginica, dan Iris Setosa. Pengukuran Iris berdasarkan panjang dan lebar dari sepal dan petal bunganya. Karena Bunga Iris sangat banyak spesiesnya, artinya terdapat perbedaan dari setiap bunga Iris. Oleh karena itu, diperlukan pengelompokkan atau Pengklasteran untuk setiap sampel supaya dapat dibedakan dengan baik berdasarkan kelompoknya.

Gambar 1.1 Tiga Spesies Iris

Ada beberapa metode yang dapat digunakan untuk Pengklasteran. Dalam laporan ini, metode yang akan digunakan adalah Algoritma KMeans dan Algoritma EM. KMeans merupakan salah satu algoritma Pengklasteran dengan metode partisi (partitioning method) yang berbasis titik pusat (centroid) [1]. Algoritma ini pertama kali diusulkan oleh MacQueen (1967) dan dikembangkan oleh Hartigan dan Wong tahun 1975. Sedangkan, Algoritma EM (Expectation-Maximization) adalah metode estimasi untuk menemukan kemungkinan maksimum dari perkiraan parameter dalam model statistik [4]. Kedua algoritma ini akan dibandingkan berdasarkan Pengklasteran pengukuran data Iris.

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas maka dapat dirumuskan permasalahan penelitian ini yaitu “Bagaimana hasil Perbandingan antara algoritma KMeans dan algoritma EM pada Pengklasteran data Iris?”

1.3 Batasan Masalah

Dalam penelitian ini hanya menggunakan Data Iris untuk melakukan pengklasteran. Metode pengklasteran yang digunakan dalam penelitian ini adalah KMeans dan EM.

1.4 Tujuan

Sesuai dengan rumusan masalah di atas maka tujuan penelitian ini yaitu “Mengetahui hasil Perbandingan antara algoritma KMeans dan algoritma EM pada Pengklasteran data Iris”.

1.5 Manfaat

Sesuai dengan tujuan di atas maka manfaat penelitian ini yaitu:
1.5.1 Memahami cara kerja algoritma KMeans dan algoritma EM.
1.5.2 Dapat mempertimbangkan algoritma terbaik untuk melakukan pengklasteran.
1.5.3 Dapat memberikan informasi mendalam mengenai algoritma KMeans dan algoritma EM dalam pengklasteran


BAB 2
KAJIAN PUSTAKA

2.1 Pengklasteran

Pengklasteran adalah proses pengelompokan objek ke dalam kelompok yang berbeda, lebih tepatnya partisi dari sebuah dataset kedalam subset, sehingga data dalam setiap subset atau klaster terdiri dari kumpulan objek yang mirip antara satu dengan yang lainnya dan berbeda dengan objek yang terdapat pada klaster lainnya. Pengklasteran mempertimbangkan sebuah pendekatan penting untuk mencari kesamaan dalam data dan menempatkan data yang sama ke dalam kelompok-kelompok. Pengklasteran membagi kumpulan data ke dalam beberapa kelompok dimana kesamaan dalam sebuah kelompok adalah lebih besar daripada diantara kelompok-kelompok [9]. Selain itu, sebagian besar data yang dikumpulkan dalam banyak masalah terlihat memiliki beberapa sifat yang melekat, sehingga mengalami pengelompokan natural [10].

Algoritma Pengklasteran terdiri dari dua bagian yaitu secara hierarki dan secara partisional. Algoritma hierarki menemukan klaster secara berurutan dimana klaster ditetapkan sebelumnya, sedangkan algoritma partisional menentukan semua kelompok pada waktu tertentu [7]. Pengklasteran juga bisa dikatakan suatu proses dimana mengelompokan dan membagi pola data menjadi beberapa jumlah dataset, sehingga akan membentuk pola yang serupa dan dikelompokan pada klaster yang sama dan memisahkan diri dengan membentuk pola yang berbeda ke klaster yang berbeda [8]. Pengklasteran sering dilaksanakan sebagai langkah pendahuluan dalam proses pengumpulan data. Dengan klaster-klaster yang dihasilkan, digunakan sebagai input lebih lanjut ke dalam sebuah teknik yang berbeda, seperti natural di atas dapat diperoleh sebagai jarak dari pembaruan formula Lance- Williams [11].

Clustering dapat ditemukan di beberapa aplikasi yang ada di berbagai bidang. Sebagai contoh pengelompokan data yang digunakan untuk menganalisis data statistik seperti pengelompokan untuk pembelajaran mesin, data mining, pengenalan pola, analisis citra dan bioinformatika [12]. Teknik pengelompokan saat ini dapat diklasifikasikan menjadi tiga kategori yaitu partisional, hierarki dan berbasis lokalitas algoritma. Terdapat satu set objek dan kriteria pengklasteran atau pengelompokan, pengelompokan partisional mememperoleh partisi objek ke dalam klaster sehingga objek dalam klaster akan lebih mirip dengan benda-benda yang ada di dalam klaster dari pada objek yang terdapat pada klaster yang berbeda. Partisional mencoba untuk menguraikan dataset ke satu set klaster dengan menentukan jumlah klaster awal yang diinginkan [13].

2.2 Algoritma KMeans

Algoritma KMeans merupakan salah satu algoritma dengan partisional. KMeans didasarkan pada penentuan jumlah awal kelompok dengan mendefinisikan nilai centroid awalnya [7]. Algoritma KMeans menggunakan proses secara berulang-ulang untuk mendapatkan basis data klaster. Dibutuhkan jumlah klaster awal yang diinginkan sebagai masukan dan menghasilkan jumlah klaster akhir sebagai keluaran. Jika algoritma diperlukan untuk menghasilkan klaster K maka akan ada K awal dan K akhir. Metode KMeans akan memilih pola K sebagai titik awal centroid secara acak. Jumlah iterasi untuk mencapai klaster centroid akan dipengaruhi oleh calon klaster centroid awal secara acak dimana posisi centroid baru tidak berubah.

Nilai K yang dipilih menjadi titik pusat awal dihitung menggunakan rumus Euclidean Distance yaitu mencari jarak terdekat antara titik centroid dengan objek. Data yang memiliki jarak terdekat dengan centroid akan membentuk sebuah klaster [14]. Dengan kata lain, algoritma KMeans akan menghasilkan titik centroid yang dijadikan sebagai tujuan dan berkelanjutan sampai tidak ada perubahan di setiap klaster [15]. Setelah iterasi KMeans berhenti, setiap objek dalam dataset menjadi anggota dari suatu klaster.

Adapun algortima dari KMeans sebagai berikut [16]:
2.2.1 Tentukan K sebagai jumlah klaster yang dibentuk.

Untuk menentukan banyaknya klaster K perlu mempertimbangkan secara teoritis dan konseptual yang diusulkan untuk menentukan banyaknya klaster. Pada penelitian ini akan menggunakan metode Elbow untuk menemukan titik centroid awal sesuai distribusi data [17]. Metode Elbow merupakan metode yang digunakan untuk menentukan banyak klaster yang tepat melalui persentase hasil perbandingan antara banyak klaster yang akan membentuk siku pada suatu titik.

2.2.2 Tentukan titik centroid awal secara acak.

Penentuan titik centroid awal dilakukan secara acak dari objek yang tersedia sebanyak K klaster, kemudian untuk menghitung titik centroid klaster ke-i berikutnya, digunakan rumus berikut:
\[ \begin{equation} v=\frac{\sum_{i=1}^{n}x_i}{n}\; ;i=1,2,...,n \tag{2.1} \end{equation} \] Keterangan:
\(v\): titik centroid pada klaster
\(x_i\): objek ke-i
\(n\): jumlah objek pada klaster

2.2.3 Hitung jarak setiap objek ke masing-masing titik centroid dari tiap klaster.

Untuk menghitung jarak tersebut dapat menggunakan rumus Euclidean Distance
\[ \begin{equation} d(x,y)=\left \| x-y \right \|=\sqrt{\sum_{i=1}^{n}(x_i-y_i)^2}\; ;i=1,2,...,n \tag{2.2} \end{equation} \] Keterangan:
\(x_i\): objek \(x\) ke-i
\(y_i\): daya \(y\) ke-i
\(n\): jumlah objek pada klaster

2.2.4 Alokasikan setiap objek ke titik centroid yang paling dekat.

Untuk pengalokasian objek ke dalam masing-masing klaster dapat dilakukan dengan cara hard KMeans, artinya secara tegas setiap objek dinyatakan sebagai anggota klaster dengan mengukur jarak kedekatan sifat terhadap titik
centroid klaster tersebut.

2.2.5 Lakukan iterasi, kemudian tentukan posisi titik centroid baru dengan menggunakan rumus (2.1)

2.2.6 Ulangi langkah c jika posisi titik centroid baru tidak sama.

2.3 Algoritma EM

Algoritma EM (Expectation-Maximization) pertama kali dikemukakan oleh [18]. Algoritma EM adalah suatu metode optimasi iteratif untuk estimasi Maksimum Likelihood yang dapat digunakan untuk mengestimasi parameter model dalam model distribusi finite mixture dan berguna untuk permasalahan data yang tidak lengkap. Konsep EM menganggap bahwa suatu objek (\(x_i\)) adalah data yang tidak lengkap dan \(z_i\) adalah bagian dari pelengkap data yang tidak terobservasi. Jika \(x_i\) masuk ke dalam komponen mixture \(k\), maka nilai \(Z_{ik}=1\) dan jika \(x_i\) tidak masuk ke dalam komponen mixture \(k\), maka nilai \(Z_{ik}=0\). Fungsi dari log Likelihood untuk data lengkap adalah sebagai berikut:
\[ lnL(\Psi)=\sum_{i=1}^{n}\sum_{k=1}^{K}z_{ik}[ln{w_k}+ln{f_k(x_i;\theta_k)}]\; ;0\leq w_k \leq 1 \tag{2.3} \] Keterangan:
\(\Psi=[w,\theta]^T\)
\(k\): banyaknya komponen mixture
\(i\): banyaknya objek pada data
\(w=[w_1,w_2,...,w_K]^T\): vektor parameter bobot dari distribusi finite mixture
\(\theta=[\theta_1,\theta_2,...,\theta_K]^T\): vektor parameter dari distribusi probabilitas semua komponen mixture

Dimisalkan nilai awal \(...\) maka tahapan dari algoritma EM untuk estimasi model finite mixture adalah sebagai berikut:
2.3.1 Tahap Expectation (E-step)

E-step menghitung nilai harapan fungsi log Likelihood untuk data lengkap pada iterasi ke-\(s\) dengan persamaan sebagai berikut:

\[ E(lnL(\Psi)|x_i,\Psi^{(s)})=\sum_{i=1}^{n}\sum_{k=1}^{K}z_{ik}^{(s)}[ln(w_k^{(s)})+in(f_x(x_i;\theta_k^{(s)}))] \tag{2.4} \]

Penduga \(z_{ik}^{(s)}\) merupakan probabilitas observasi data \(x_i\) dihitung dengan rumus sebagai berikut:

\[ z_{ik}^{(s)}=\frac{w_k^{(s)}f_k(x_i;\theta_k^{(s)})}{\sum_{k=1}^{K}w_k^{(s)}f_k(x_i;\theta_k^{(s)})} \tag{2.5} \]

2.3.2 Tahap Maximization (M-step)

Parameter bobot \(w_k\) pada iterasi ke-\((s+1)\) diduga dengan rumus:
\[ \hat{w_k}^{(s+1)}=\frac{\sum_{i=1}^{n}z_{ik}^{(s)}}{n} \tag{2.6} \] Perkiraan parameter \(\hat{\theta_i}^{(s+1)}\) memiliki penyelesaian sebagai berikut:

\[ \frac{\partial }{\partial \theta}\left \{ \sum_{i=1}^{n}\sum_{k=1}^{K}z_{ik}^{(s)}ln(f_k(x_i;\theta_k)) \right \}=0 \tag{2.7} \]

Sebagai algoritma yang berdasarkan pada probabilitas, EM memiliki beberapa karakteristik antara lain:
a. Menghasilkan sistem klaster yang relatif mudah diinterpretasikan.
b. Dapat diberhentikan dan dimulai kembali dengan kelompok data berurutan karena setiap klaster memiliki representasi yang berbeda.


BAB 3
METODOLOGI PENELITIAN

3.1 Teknik Pengumpulan Data

Penelitian ini menggunakan data sekunder yang sudah tersedia di dalam R yaitu dataset iris. Dataset yang digunakan sudah dikumpulkan oleh peneliti terdahulu yaitu [19]. Dataset iris terdiri dari beberapa variabel bebas yaitu, Sepal length, Sepal Width, Petal length, dan Petal width dalam centimeter dan variabel terikat yaitu 3 spesies iris. Ketiga spesies tersebut adalah setosa, versicolor, dan virginica.

3.3 Lokasi Pengumpulan Data

Penelitian ini menggunakan data yang dapat diakses secara daring, sehingga lokasi pengumpulan data data di mana saja.

3.2 Jenis Penelitian

Jenis penelitian yang digunakan dalam penelitian ini adalah penelitian kuantitatif. Penelitian kuantitatif merupakan penelitian yang dataset nya berisikan data kuantitatif atau bersifat numerik yang selanjutnya dianalisis secara statistika. Selanjutnya, dilakukan analisis statistika deskriptif untuk mengetahui sebaran data, visualisasi, dan korelasi data, serta dilakukan pengklasteran dengan metode KMeans dan EM untuk membandingkan keakuratan keduanya.

3.4 Objek Penelitian

Objek penelitian yang digunakan dalam penelitian ini adalah Objek Penelitian Komparatif dimana membandingkan antara dua variabel (Bivariate) dengan menggunakan KMeans dan EM. Adapun Objek Penelitian Korelasi dimana mencari hubungan antarvariabel. Hasil dari kedua metode, selanjutnya akan dibandingkan keakuratannya.

3.5 Flowchart

Gambar 3.1 Flowchart Penelitian

BAB 4
HASIL DAN PEMBAHASAN

4.1 Import Data

Berikut ini merupakan data Iris yang akan digunakan dalam penelitian.

Tabel 4.1 Data Iris

Berikut ini merupakan koding untuk melihat struktur data, ringkasan statistik, dan standar deviasi variabel numerik pada data iris.

4.1.1 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 Ringkasan Statistik

##   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 Standar Deviasi

Tabel 4.2 Standar Deviasi Data Iris

Dari hasil perhitungan di atas diperoleh bahwa terdapat 4 variabel numerik (Sepal length, Sepal width, Petal length, dan Petal width) dan 1 variabel kategorik spesies berjenis faktor (Versicolor, Virginica, dan Setosa). Dari ringkasan statistik dapat dilihat bahwa ketiga spesies memiliki frekuensi yang sama. Lalu, dari keempat variabel numerik terlihat bahwa variabel Petal Length lah yang lebih bervariasi, karena dibuktikan dari standar deviasinya yang lebih besar dibanding variabel numerik lainnya. Standar deviasi digunakan untuk mengukur sebaran variansi data. Semakin besar nilai standar deviasi, maka semakin bervariasi pula datanya.

4.2 Visualisasi Data

Pada data iris, variabel kategorik memiliki frekuensi yang sama, maka tidak divisualisasikan karena tidak memberikan begitu banyak informasi. Maka dari itu, pada penelitian ini akan memvisualisasikan data numerik.

4.2.1 Univariabel

Berikut ini merupakan hasil visualisasi keempat variabel numerik secara univariate.

Gambar 4.1 Visualisasi Univariabel

Pada Gambar 4.1 terlihat bahwa Sepal length dan Sepal width terdistribusi normal, sedangkan pada Petal length dan Petal width terdapat dua distribusi yang mengakibatkan perlunya penelitian lebih lanjut.

4.2.2 Bivariabel

Berikut ini merupakan hasil visualisasi keempat variabel numerik secara bivariate.

Gambar 4.2 Visualisasi Bivariabel

Pada Gambar 4.2 terlihat bahwa semua visualisasi memiliki dua distribusi dikarenakan menggunakan dua variabel. Pada visualisasi 1, 2, dan 6 terlihat bahwa adanya hubungan bertolak belakang dikarenakan pada saat variabel X naik, variabel Y turun. Lalu, pada visualisasi 3, 4, dan 5 terlihat bahwa adanya hubungan searah dikarenakan pada saat variabel X naik, variabel Y juga naik. Hal ini akan dibuktikan pada analisis korelasi.

4.2.3 Multivariabel

Berikut ini merupakan hasil visualisasi keempat variabel numerik secara multivariabel. Khusus untuk multivariabel, variabel kategorik harus dimasukkan supaya muncul data untuk setiap spesies.

Gambar 4.3 Visualisasi Multivariabel

4.3 Analisis Korelasi

Korelasi merupakan sesuatu yang digunakan untuk mengukur kekuatan hubungan antar variabel. Analisis korelasi dilakukan supaya mengetahui ada tidaknya hubungan antar variabel. Berikut ini dilakukan pengecekkan korelasi antar variabel numerik pada data iris.

Tabel 4.3 Analisis Korelasi Antar Variabel

Dari hasil analisis di atas dapat dilihat bahwa korelasi antarvariabel bervariasi. Apabila pengecekkan korelasi antar variabel menunjukkan nilai negatif, artinya hubungan antarvariabel tersebut bertolak belakang. Akan tetapi, apabila pengecekkan korelasi antarvariabel menunjukkan nilai positif artinya hubungan antarvariabel tersebut searah. Hal ini membuktikan hasil visualisasi bivariate data iris.

4.4 Proses KMeans

Mula-mula dilakukan penentuan berapa banyak klaster K dengan menggunakan metode elbow. Berikut ini merupakan grafik metode elbow.

Gambar 4.4 Grafik Metode Elbow

Dari grafik di atas terlihat bahwa titik siku berada pada angka 3, sehingga jumlah klaster pada data iris adalah sebanyak 3. Selanjutnya, pada tabel 4.4 di bawah ini menunjukkan hasil pengklasteran menggunakan algoritma KMeans dengan jumlah klaster sebanyak 3.

Tabel 4.4 Hasil Pengklasteran KMeans
##    
##     setosa versicolor virginica
##   1     50          0         0
##   2      0         48        14
##   3      0          2        36

Pada Tabel 4.4 menunjukkan bahwa pada klaster 1 terdapat 50 setosa, klaster 2 terdapat 48 versicolor dan 14 virginica, klaster 3 terdapat 2 versicolor dan 36 virginica. Hal ini menunjukkan bahwa klaster 1 merujuk ke setosa, klaster 2 merujuk ke versicolor, dan klaster 3 merujuk ke virginica, dengan 14 kesenjangan di klaster 2 dan 2 kesenjangan di klaster 3.

4.5 Proses EM

Berikut ini merupakan hasil pengklasteran menggunakan algoritma EM.

Tabel 4.5 Hasil Pengklasteran EM
##    
##     setosa versicolor virginica
##   1     50          0         0
##   2      0         45         0
##   3      0          5        50

Pada Tabel 4.5 menunjukkan bahwa pada klaster 1 terdapat 50 setosa, pada klaster 2 terdapat 45 versicolor, dan pada klaster 3 terdapat 5 versicolor dan 50 virginica. Hal ini menunjukkan bahwa klaster 1 merujuk ke setosa, klaster 2 merujuk ke versicolor, dan klaster 3 merujuk ke virginica, dengan 5 kesenjangan di klaster 3.

4.6 Perbandingan KMeans dan EM

Berikut ini terdapat tiga visualisasi yang menampilkan perbandingan antara Algoritma KMeans dan Algoritma EM terhadap beberapa variabel.

4.6.1 Sepal length vs Petal length

Gambar 4.5 Visualisasi Pengklasteran Sepal length vs Petal length


4.6.2 Sepal length vs Petal Width

Gambar 4.6 Visualisasi Pengklasteran Sepal length vs Petal width


4.6.3 Petal length vs Petal Width

Gambar 4.7 Visualisasi Pengklasteran Petal length vs Petal width


Dari ketiga Grafik Pengklasteran terlihat bahwa hasil visualisasi Algoritma EM lebih mendekati Data Spesies dibandingkan dengan Algoritma KMeans. Hal ini juga dibuktikan pada Tabel 4.4 dan Tabel 4.5 yang menunjukkan kesenjangan dari tiap metode. Algoritma EM lah yang memiliki sedikit kesenjangan dibandingkan dengan Algoritma KMeans.


BAB 5
KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil analisis dan pembahasan data dapat diperoleh kesimpulan yang dapat diambil dari penelitian mengenai Perbandingan Algoritma KMeans dan Algoritma EM pada Data Iris yaitu penentuan jumlah klaster K adalah sebanyak 3 dimana secara tidak langsung merepresentasikan ketiga spesies iris yang ada pada data. Hasil perbandingan kedua algortima menunjukkan bahwa pada proses Algoritma KMeans terdapat 16 kesenjangan pada klasternya yang tidak sesuai dengan spesies, sedangkan pada proses algortima EM terdapat 5 kesenjangan yang tidak sesuai dengan spesies. Oleh karena itu dapat disimpulkan bahwa metode algortima terbaik untuk penelitian ini adalah Algortima EM, karena memiliki kesenjangan yang lebih rendah.

5.2 Saran

Peneliti selanjutnya dapat menggunakan contoh data lainnya supaya hasil penelitian dapat mencakup lebih luas dengan keputusan algoritma terbaik sesuai dengan pengklasteran dataset pada unsupervised learning. Selain itu, peneliti selanjutnya juga dapat melakukan analisis lebih lanjut terhadap data iris di mana terdapat dua distribusi dalam visualisasinya agar dapat mengerti informasi apa yang ada pada visualisasi tersebut.


DAFTAR PUSTAKA


[1] searchenterpriseai.techtarget.com
[2] dqlab.id
[3] wikipedia.org
[4] digilib.its.ac.id
[5] Rohmawati, N., Defiyanti, S., & Jajuli, M. (2015). Implementasi Algoritma K-Means Dalam Pengklasteran Mahasiswa Pelamar Beasiswa. Jurnal Ilmiah Teknologi Infomasi Terapan, 1(2).
[6] Febrianti, F., Hafiyusholeh, M., & Asyhar, A. H. (2016). Perbandingan Pengklusteran data iris menggunakan metode k-means dan fuzzy c-means. Jurnal Matematika" MANTIK, 2(1), 7-13.
[7] Madhulatha, T.S., 2012. An Overview On Clustering Methods. IOSR Journal of Engineering, II(4), pp.719-725
[8] HUNG, C.M., WU, J., CHANG, J.H. & YANG, D.L., 2005. An Efficient k-Means Clustering Algorithm Using Simple Partitioning. JOURNAL OF INFORMATION SCIENCE AND ENGINEERING, XXI(1), pp.1157-77
[9] Xu, R., & Wunsch, D. (2008). Clustering (Vol. 10). John Wiley & Sons.
[10] Hammouda, K. Karray, F. 2003, A Comparative Study of Data Clustering Techniques , Unpublished.
[11] Lance, G. N., & Williams, W. T. (1967). A general theory of classificatory sorting strategies: II. Clustering systems. The computer journal, 10(3), 271-277.
[12] Debatty, Thibault., et.Al, (2014). Determining the k in k-means with MapReduce. Proceedings of the EDBT/ICDT 2014 Joint Conference (ISSN 1613-0073), 19-28.
[13] Varghese, B.M., J, J.T., A, U. & K, J.P., 2011. Clustering Student Data to Characterize Performance Patterns. International Journal of Advanced Computer Science and Applications, I(3), pp.138-40.
[14] Agrawal, A. & Gupta, H., 2013. Global K-Means (GKM) Clustering Algorithm: A Survey.
[15] Chaturved, E.N. & Rajavat, E.A., 2013. An Improvement in K-mean Clustering Algorithm Using Better Time and Accuracy. International Journal of Programming Languages and Applications, III(4), pp.13-19.
[16] Ediyanto, Mara, M.N. & Satyahadewi, N., 2013. Pengklasifikasian Karakteristik Dengan Metode K-Means Cluster Analysis. Buletin Ilmiah Mat. Stat. dan Terapannya , II(2), pp.133-36.
[17] Kaur, M. & Kaur, U., 2013. A Survey on Clustering Principles with K-means Clustering Algorithm Using Different Methods in Detail. International Journal of Computer Science and Mobile Computing, II(5), pp.327-31.
[18] Dempster, A., Laird, N., dan Rubin, D. (1997). Maximum Likelihood from Incomplete Data Via the EM Algorithm. Journal of the Royal Statistical Society: Series B (Methodological), Vol. 39, No. 3, pp 609-617.
[19] The data were collected by Anderson, Edgar (1935). The irises of the Gaspe Peninsula, Bulletin of the American Iris Society, 59, 2–5.

LAMPIRAN

Semua Package yang digunakan

library(ggplot2)
library(patchwork)
library(NbClust)
library(factoextra)
library(EMCluster)
library(reshape2)
library(dplyr)

Semua Koding

# Import Data
data_iris <- iris

## Struktur Data
str(data_iris)
## Ringkasan Statistika
summary(data_iris)
## Standar Deviasi
num_iris <- data_iris %>% dplyr::select(- Species)
as.data.frame(lapply(num_iris,sd))

# Visualisasi

## Univariabel
plotSL <- ggplot(data_iris, aes(x = Sepal.Length))+
          geom_histogram(bins = 15, fill = "red", colour = "white")
plotSW <- ggplot(data_iris, aes(x = Sepal.Width))+
          geom_histogram(bins = 15, fill = "blue", colour = "white")
plotPL <- ggplot(data_iris, aes(x = Petal.Length))+
          geom_histogram(bins = 15, fill = "violet", colour = "white")
plotPW <- ggplot(data_iris, aes(x = Petal.Width))+
          geom_histogram(bins = 15, fill = "purple", colour = "white")
plotSL +
  plotSW + 
  plotPL + 
  plotPW +
  plot_layout(ncol = 2)
## Bivariabel
plotSL_SW <- ggplot(data_iris, aes(x = Sepal.Length, y = Sepal.Width))+
             geom_point(color = "red")
plotSW_PL <- ggplot(data_iris, aes(x = Sepal.Width, y = Petal.Length))+
             geom_point(color = "violet")
plotPL_PW <- ggplot(data_iris, aes(x = Petal.Length, y = Petal.Width))+
             geom_point(color = "blue")
plotPW_SL <- ggplot(data_iris, aes(x = Petal.Width, y = Sepal.Length))+
             geom_point(color = "green")
plotSL_PL <- ggplot(data_iris, aes(x = Sepal.Length, y = Petal.Length))+
             geom_point(color = "purple")
plotSW_PW <- ggplot(data_iris, aes(x = Sepal.Width, y = Petal.Width))+
             geom_point(color = "orange")
plotSL_SW +
  plotSW_PL +
  plotPL_PW +
  plotPW_SL +
  plotSL_PL +
  plotSW_PW +
  plot_layout(ncol = 3)
## Multivariabel
multi_plot1 <- ggplot(data_iris, aes(x = Sepal.Length, y = Petal.Length, shape = Species, fill = Species))+
               geom_boxplot()
multi_plot2 <- ggplot(data_iris, aes(x = Petal.Length, y = Petal.Width, shape = Species, fill = Species))+
               geom_boxplot()
multi_plot3 <- ggplot(data_iris, aes(x = Petal.Width, y = Sepal.Length, shape = Species, fill = Species))+
               geom_boxplot()
multi_plot1 +
  multi_plot2 +
  multi_plot3 +
  plot_layout(nrow = 3)

# Analisis Korelasi
as.data.frame(cor(num_iris))

# Proses KMeans

## Metode Elbow
fviz_nbclust(data_iris[,1:4],kmeans,method = "wss")
## Hasil Pengklasteran KMeans
set.seed(123)
klaster <- kmeans(data_iris[,1:4],3,iter.max=1000,nstart=50)
table(klaster$cluster,data_iris$Species)

# Proses EM

## Hasil Pengklasteran EM
set.seed(12)
em1        <- exhaust.EM(data_iris[,1:4],nclass = 3) 
emobj      <- shortemcluster(data_iris[,1:4], em1,maxiter = 1000)
em_klaster <- emcluster(data_iris[,1:4], emobj, assign.class = TRUE)

table(em_klaster$class,data_iris$Species)

# Perbandingan KMeans dan EM

## Sepal length vs Petal length
dat <- data.frame(data_iris[,1:4],"Species"=as.factor(data_iris$Species), 
       KMeans=as.factor(klaster$cluster),EM=as.factor(em_klaster$class)) %>% 
       melt(id.var=colnames(data_iris[,-5]))

dat %>% ggplot(aes(x = Sepal.Length, y = Petal.Length, color=value))+geom_point()+
        facet_wrap(~variable)+theme_grey()+
        theme(strip.background =element_rect(fill="#219DFF"))+
        theme(strip.text = element_text(colour = 'white'))+
        ggtitle("Sepal length vs Petal length")
## Sepal length vs Petal Width
dat %>% ggplot(aes(x=Sepal.Length,y=Petal.Width, color=value))+geom_point()+
        facet_wrap(~variable)+theme_grey()+
        theme(strip.background =element_rect(fill="#219DFF"))+
        theme(strip.text = element_text(colour = 'white'))+
        ggtitle("Sepal length vs Petal Width")
## Petal length vs Petal Width
dat %>% ggplot(aes(x=Petal.Length,y=Petal.Width, color=value))+geom_point()+
        facet_wrap(~variable)+theme_grey()+
        theme(strip.background =element_rect(fill="#219DFF"))+
        theme(strip.text = element_text(colour = 'white'))+
        ggtitle("Petal length vs Petal Width")