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
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.
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:
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
BAB 4
HASIL DAN PEMBAHASAN
4.1 Import Data
Berikut ini merupakan data Iris yang akan digunakan dalam penelitian.
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
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.
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.
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.
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.
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.
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.
##
## 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.
##
## 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
4.6.2 Sepal length vs Petal Width
4.6.3 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")