UTS METODOLOGI PENELITIAN DAN OPTIMASI
PERBANDINGAN ANTARA ALGORITMA K-MEANS DENGAN EM UNTUK DATA IRIS MENGGUNAKAN PACAKAGE EMCLUSTER
NAMA: Julian Salomo
NIM: 20194920003
PROGRAM STUDI: Statistika Bisnis
FAKULTAS SCIENCE TECHNOLOGY, ENGINEERING, AND MATHEMATHICS
UNIVERSITAS MATANA
TANGERANG
2021
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Clustering atau klasterisasi adalah metode pengelompokan data. Menurut Tan, 2006 clustering adalah sebuah proses untuk mengelompokan data ke dalam beberapa cluster atau kelompok sehingga data dalam satu klaster memiliki tingkat kemiripan yang maksimum dan data antar klaster memiliki kemiripan yang minimum.K-Means dan EM algorithm. Madhulatha (2012)
Algoritma K-Means menemukan k klaster dengan memilih titik k data secara acak sebagai pusat klaster awal. Setiap titik data kemudian ditugaskan ke klaster dengan pusat yang paling dekat dengan titik itu. Setiap pusat klaster kemudian diganti dengan mean dari semua titik data yang telah ditetapkan ke klaster tersebut. Proses ini diulang sampai tidak ada titik data yang dipindahkan ke klaster yang berbeda.
Algoritma EM menemukan klaster dengan menentukan campuran Gauss yang sesuai dengan kumpulan data yang diberikan. Setiap Gaussian memiliki matriks mean dan kovarians yang terkait. Namun, karena kita menggunakan Gauss shperical, skalar varians digunakan sebagai pengganti matriks kovarians. Probabilitas prior untuk setiap Gaussian adalah fraksi titik dalam klaster yang ditentukan oleh Gaussian tersebut. Parameter ini dapat diinisialisasi dengan memilih rata-rata Gauss secara acak, atau dengan menggunakan output K-means untuk pusat awal. Algoritme konvergen pada solusi optimal lokal dengan memperbarui nilai rata-rata dan varians secara iteratif.
Di karya ilmiah ini peneliti akan membandingkan klasterisasi menggunakan algoritma K-Means dan EM pada set data iris. Iris sendiri adalah sebuah genus dalam famili Iridaceae yang mencakup 260-300 spesies tumbuhan berbunga. Data set iris berisi data pengukuran untuk variabel Sepal Length, Sepal Width, Petal Length, dan Petal Width dari 3 spesies iris, yaitu Iris setosa, versicolor, and virginica. Data ini memiliki rekaman untuk 150 kasus.
1.2 Rumusan Masalah
Bagaimana hasil perbandingan klasterisasi antara algoritam K-Means dan EM?
1.3 Tujuan
Mengetahui hasil perbandingan klasterisasi antara algoritam K-Means dan EM?
1.4 Manfaat
- Memahami proses kerja klasterisasi K-Means dan EM algorithm.
- Mengetahui cara mempertimbangkan algoritma klasterisasi yang perlu digunakan.
BAB 2
KAJIAN PUSTAKA
2.1 Clustering (Klasterisasi)
Analisis klaster membagi data menjadi kelompok-kelompok (klaster) yang bermakna, berguna, atau keduanya. Jika kelompok yang bermakna adalah tujuannya, maka klaster harus menangkap struktur alami data. Namun, dalam beberapa kasus, analisis klaster digunakan untuk peringkasan data untuk mengurangi ukuran data. Baik untuk pemahaman atau utilitas, analisis klaster telah lama memainkan peran penting dalam berbagai bidang: psikologi dan ilmu sosial lainnya, biologi, statistik, pengenalan pola, pencarian informasi, pembelajaran mesin, dan penambangan data. Ada banyak aplikasi analisis klaster untuk masalah praktis. Kami memberikan beberapa contoh spesifik, yang disusun berdasarkan apakah tujuan pengelompokan adalah pemahaman atau utilitas.
Pengelompokan untuk Pemahaman Kelas, atau kelompok objek yang bermakna secara konseptual yang memiliki karakteristik umum yang sama, memainkan peran penting dalam cara orang menganalisis dan mendeskripsikan dunia. Memang, manusia terampil membagi objek ke dalam kelompok-kelompok (pengelompokan) dan menetapkan objek tertentu ke kelompok-kelompok ini (klasifikasi). Misalnya, bahkan anak-anak yang relatif muda pun dapat dengan cepat melabeli objek-objek dalam sebuah foto. Dalam konteks pemahaman data, klaster adalah kelas potensial dan analisis klaster adalah studi tentang teknik untuk menemukan kelas secara otomatis.
Pengelompokan untuk Utilitas Analisis klaster memberikan abstraksi dari objek data individual ke klaster tempat objek data tersebut berada. Selain itu, beberapa teknik pengelompokan mencirikan setiap klaster dalam hal prototipe klaster; yaitu, objek data yang mewakili objek dalam klaster. Prototipe klaster ini dapat digunakan sebagai dasar untuk sejumlah analisis data tambahan atau teknik pengolahan data. Oleh karena itu, dalam konteks utilitas, analisis klaster adalah studi tentang teknik untuk menemukan prototipe klaster yang paling representatif.
2.1.1 Apa itu Analisis Klaster
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.
Dalam banyak aplikasi, gagasan tentang klaster tidak didefinisikan dengan baik. Untuk lebih memahami kesulitan memutuskan apa yang merupakan klaster, perhatikan Gambar 2.1, yang menunjukkan 20 poin dan tiga cara yang berbeda untuk membaginya menjadi klaster. Bentuk penanda menunjukkan keanggotaan klaster. Gambar 2.1(b) dan 2.1(d) membagi data menjadi dua dan enam bagian, masing-masing. Namun, pembagian yang jelas dari masing-masing dari dua kelompok yang lebih besar menjadi tiga subkelompok mungkin hanya merupakan artefak dari sistem visual manusia. Juga, mungkin tidak masuk akal untuk mengatakan bahwa titik-titik tersebut membentuk empat kelompok, seperti yang ditunjukkan pada Gambar 2.1(c). Gambar ini menggambarkan bahwa definisi klaster tidak tepat dan definisi terbaik tergantung pada sifat data dan hasil yang diinginkan.
Figure 2.1: 3 cara berbeda klasterisasi poin/titik yang sama
2.1.2 Tipe-Tipe Klasterisasi
Seluruh kumpulan klaster biasanya disebut sebagai pengelompokan, dan di bagian ini, kami membedakan berbagai jenis pengelompokan: hierarchical (nested) versus partitional (unnested), exclusive versus overlapping versus fuzzy, dan complete versus partial. Pang-Ning Tan (2019)
Hierarchical versus Partitional Perbedaan yang paling sering dibahas di antara berbagai jenis pengelompokan adalah apakah kumpulan klaster bersarang atau tidak bersarang, atau dalam terminologi yang lebih tradisional, hierarkis atau partisi. Sebuah clustering partisi hanya sebuah divisi dari set objek data menjadi subset yang tidak tumpang tindih (klaster) sehingga setiap objek data berada tepat di satu subset. Diambil secara individual, setiap kumpulan klaster pada Gambar 2.1 (b-d) adalah clustering partisi.
Exclusive versus Overlapping versus Fuzzy Pengelompokan yang ditunjukkan pada Gambar 2.1 semuanya eksklusif, karena mereka menetapkan setiap objek ke satu klaster. Ada banyak situasi di mana sebuah titik dapat ditempatkan secara wajar di lebih dari satu klaster, dan situasi ini lebih baik ditangani dengan pengelompokan non-eksklusif. Dalam pengertian yang paling umum, pengelompokan yang tumpang tindih atau non-eksklusif digunakan untuk mencerminkan fakta bahwa suatu objek dapat secara bersamaan menjadi milik lebih dari satu kelompok (kelas). Misalnya, seseorang di universitas dapat menjadi mahasiswa terdaftar dan karyawan universitas. Pengelompokan non-eksklusif juga sering digunakan ketika, misalnya, sebuah objek “di antara” dua atau lebih klaster dan cukup dapat ditugaskan ke salah satu klaster ini. Bayangkan sebuah titik di tengah-tengah antara dua kelompok pada Gambar 2.1. Alih-alih membuat penugasan objek yang agak sewenang-wenang ke satu klaster, itu ditempatkan di semua klaster yang “sama bagusnya.”
Complete versus Partial Sebuah klasterisasi lengkap menetapkan setiap objek ke sebuah klaster, sedangkan klasterisasi parsial tidak. Motivasi untuk pengelompokan parsial adalah bahwa beberapa objek dalam kumpulan data mungkin tidak termasuk dalam grup yang terdefinisi dengan baik. Sering kali objek dalam kumpulan data mewakili noise, outlier, atau “latar belakang yang tidak menarik.” Misalnya, beberapa berita surat kabar memiliki tema yang sama, seperti pemanasan global, sementara berita lainnya lebih umum atau unik. Jadi, untuk menemukan topik penting dalam cerita bulan lalu, kita sering ingin mencari hanya kumpulan dokumen yang terkait erat dengan tema umum. Dalam kasus lain, pengelompokan objek yang lengkap diinginkan. Misalnya, aplikasi yang menggunakan klasterisasi untuk mengatur dokumen untuk browsing perlu menjamin bahwa semua dokumen dapat dijelajahi.
2.1.3 Tipe-Tipe Klaster
Clustering bertujuan untuk menemukan kelompok objek yang berguna (klaster), dimana kegunaan ditentukan oleh tujuan dari analisis data. Tidak mengherankan, beberapa pengertian yang berbeda dari sebuah klaster terbukti berguna dalam praktek. Untuk mengilustrasikan perbedaan di antara tipe klaster ini secara visual, kami menggunakan titik dua dimensi, seperti yang ditunjukkan pada Gambar 2.2, sebagai objek data kami. Kami menekankan, bagaimanapun, bahwa jenis klaster yang dijelaskan di sini sama-sama valid untuk jenis data lainnya.
Figure 2.2: Tipe-Tipe Klaster diilustrasikan dengan titik dua dimensi
Well-Separated Cluster adalah sekumpulan objek di mana setiap objek lebih dekat (atau lebih mirip) dengan setiap objek lain dalam klaster daripada objek apa pun yang tidak berada di klaster. Kadang-kadang ambang batas digunakan untuk menentukan bahwa semua objek dalam sebuah klaster harus cukup dekat (atau serupa) satu sama lain. Definisi idealis dari sebuah klaster hanya terpenuhi ketika data berisi klaster alami yang cukup jauh dari satu sama lain. Gambar 2.2(a) memberikan contoh klaster terpisah yang terdiri dari dua kelompok titik dalam ruang dua dimensi. Jarak antara dua titik dalam kelompok yang berbeda lebih besar daripada jarak antara dua titik dalam satu kelompok. klaster yang dipisahkan dengan baik tidak harus berbentuk bulat, tetapi dapat memiliki bentuk apa pun.
Prototype-Based klaster adalah sekumpulan objek di mana setiap objek lebih dekat (lebih mirip) dengan prototipe yang mendefinisikan klaster daripada prototipe klaster lainnya. Untuk data dengan atribut kontinu, prototipe sebuah klaster sering kali merupakan centroid, yaitu rata-rata (mean) dari semua titik dalam klaster. Ketika centroid tidak bermakna, seperti ketika data memiliki atribut kategoris, prototipe sering kali merupakan medoid, yaitu titik paling representatif dari sebuah klaster. Untuk banyak jenis data, prototipe dapat dianggap sebagai titik paling sentral, dan dalam kasus seperti itu, kita biasanya menyebut klaster berbasis prototipe sebagai klaster berbasis pusat. Tidak mengherankan, klaster seperti itu cenderung berbentuk bulat. Gambar 2.2(b) menunjukkan contoh klaster berbasis pusat.
Graph-Based Jika data direpresentasikan sebagai grafik, di mana node adalah objek dan link mewakili koneksi antar objek (lihat Bagian 2.1.2), maka klaster dapat didefinisikan sebagai komponen yang terhubung; yaitu, sekelompok objek yang terhubung satu sama lain, tetapi tidak memiliki koneksi ke objek di luar grup. Contoh penting dari klaster berbasis grafik adalah klaster berbasis kedekatan, di mana dua objek terhubung hanya jika mereka berada dalam jarak tertentu satu sama lain. Ini menyiratkan bahwa setiap objek dalam klaster berbasis kedekatan lebih dekat ke beberapa objek lain dalam klaster daripada ke titik mana pun di klaster yang berbeda. Gambar 2.2(c) menunjukkan contoh klaster tersebut untuk titik dua dimensi. Definisi klaster ini berguna ketika klaster tidak teratur atau saling terkait. Namun, pendekatan ini dapat mengalami masalah ketika noise hadir karena, seperti yang diilustrasikan oleh dua kelompok bola pada Gambar 2.2(c), jembatan titik kecil dapat menggabungkan dua kelompok yang berbeda.
Density-Based klaster adalah wilayah padat objek yang dikelilingi oleh wilayah kepadatan rendah. Gambar 2.2(d) menunjukkan beberapa klaster berbasis kepadatan untuk data yang dibuat dengan menambahkan noise ke data Gambar 2.2(c). Dua klaster melingkar tidak digabungkan, seperti pada Gambar 2.2(c), karena jembatan di antara mereka memudar menjadi noise. Demikian pula, kurva yang ada pada Gambar 2.2(c) juga memudar menjadi noise dan tidak membentuk klaster pada Gambar 2.2(d). Definisi klaster berbasis kepadatan sering digunakan ketika klaster tidak teratur atau saling terkait, dan ketika ada noise dan outlier. Sebaliknya, definisi klaster berdasarkan kedekatan tidak akan bekerja dengan baik untuk data Gambar 2.2(d) karena noise akan cenderung membentuk jembatan antar klaster.
Shared-Property (Conceptual Clusters) Secara lebih umum, kita dapat mendefinisikan klaster sebagai sekumpulan objek yang berbagi beberapa properti. Definisi ini mencakup semua definisi klaster sebelumnya; misalnya, objek dalam klaster berbasis pusat berbagi properti yang semuanya paling dekat dengan centroid atau medoid yang sama. Namun, pendekatan properti bersama juga mencakup tipe klaster baru. Pertimbangkan klaster yang ditunjukkan pada Gambar 2.2(e). Area segitiga (klaster) berbatasan dengan persegi panjang, dan ada dua lingkaran yang saling terkait (klaster). Dalam kedua kasus, algoritma pengelompokan akan membutuhkan konsep klaster yang sangat spesifik untuk berhasil mendeteksi klaster ini. Proses menemukan klaster seperti itu disebut konseptual klasterisasi. Namun, gagasan tentang klaster yang terlalu canggih akan membawa kita ke bidang pengenalan pola, dan dengan demikian, kita hanya mempertimbangkan jenis klaster yang lebih sederhana dalam buku ini.
2.2 K-Means Algorithm
Berdasarkan Yong Gyu Jung (2014) Prosedur analisis cluster dianalisis untuk menentukan properti dari kumpulan data dan variabel target. Hal ini biasanya digunakan untuk menentukan bagaimana mengukur jarak kesamaan. Pada dasarnya, ini berfungsi sebagai berikut:
Input: Jumlah \(k\) dan database yang berisi n objek.
Output: Satu set \(k\)-cluster yang meminimalkan kriteria kesalahan kuadrat.
Metode:
1. memilih \(k\) objek sebagai pusat cluster awal;
2. mengulang;
3. (kembali) menetapkan setiap objek ke cluster yang objeknya paling mirip berdasarkan nilai rata-rata objek dalam cluster;
4. perbarui mean cluster, yaitu menghitung nilai mean objek untuk setiap cluster;
5. sampai tidak ada perubahan.
Untuk mulai menggunakan metode clustering, dapat dibagi menjadi dua metode: metode hierarkis dan non-hierarkis. Salah satu pendekatan clustering dapat dipilih setelah analisis. Dengan kata lain, jumlah cluster yang diinginkan, \(k\), ditentukan terlebih dahulu, dan masing-masing kasus ditugaskan ke salah satu \(k\)-cluster untuk meminimalkan varians dari clustering dari teknik internal. Dalam pendekatan non-hierarki, untuk menciptakan komunitas yang baik, \(k\) didefinisikan terlebih dahulu sehingga item pengukuran didasarkan pada homogenitas komunitas. Mereka bukan cluster bersarang; pengelompokan hierarkis digunakan untuk membagi sampel.
2.3 EM Algorithm
Berdasarkan Yong Gyu Jung (2014) Konsep algoritma EM berasal dari model campuran Gaussian (GMM). Metode GMM adalah salah satu cara untuk meningkatkan densitas sekumpulan data sampel tertentu yang dimodelkan sebagai fungsi densitas probabilitas dari metode estimasi densitas tunggal dengan fungsi densitas probabilitas beberapa Gaussian untuk memodelkan distribusi data. Secara umum, untuk mendapatkan estimasi parameter dari setiap komponen campuran Gaussian jika diberikan kumpulan data sampel dari kemungkinan log data, maksimum ditentukan oleh algoritma EM untuk memperkirakan model yang optimal. Pada prinsipnya, metode EM clustering menggunakan algoritma berikut:
Input: Nomor cluster \(k\), database, toleransi penghentian.
Output: Satu set \(k\)-cluster dengan bobot yang memaksimalkan fungsi log-likelihood.
- Langkah harapan: Untuk setiap record database \(x\), hitung probabilitas keanggotaan \(x\) di setiap cluster \(h = 1,\cdots,k\)
- Langkah maksimalisasi: Perbarui parameter model campuran (bobot probabilitas).
- Kriteria berhenti: Jika kriteria berhenti terpenuhi, berhenti, jika tidak, atur \(j = j +1\) dan lanjutkan ke (1).
Dalam metode analisis yang tersedia untuk mencapai parameter distribusi probabilitas, dalam semua probabilitas nilai variabel diberikan. Algoritma EM berulang menggunakan variabel acak dan, pada akhirnya, adalah metode umum untuk menemukan parameter optimal dari fungsi distribusi tersembunyi dari data yang diberikan, ketika data tidak lengkap atau memiliki nilai yang hilang.
2.4 Package EMCLUSTER
EMCluster menyediakan algoritma EM dan beberapa metode inisialisasi yang efisien untuk pengelompokan berbasis model dari distribusi Gaussian campuran hingga dengan dispersi tidak terstruktur dalam pengelompokan tanpa pengawasan dan semi-terawat. Chen and Maitra (2015)
BAB 3
METODOLOGI PENELITIAN
3.1 Sumber Data Penelitian
Dalam penelitian ini kita akan menggunakan data iris yang tersedia dari R langsung. Datanya dapat kita lihat di bawah ini.
data(iris)
datatable(iris)Data ini terdiri dari 3 spesies dan 50 sampel untuk tiap spesiesnya.
3.2 Jenis Penelitian
Penelitian yang dilakukan oleh peneliti adalah penelitian kuantitatif, karena disini peneliti akan melakukan perhitungan dengan data yang berbentuk angka secara sistematis, terencana, dan terstruktur.
Metode penelitian kuantitatif merupakan salah satu jenis penelitian yang spesifikasinya adalah sistematis, terencana, dan terstruktur dengan jelas sejak awal hingga pembuatan desain penelitiannya. Definisi lain menyebutkan penelitian kuantitatif adalah penelitian yang banyak menuntut penggunaan angka, mulai dari pengumpulan data, penafsiran terhadap data tersebut, serta penampilan dari hasilnya. Demikian pula pada tahap kesimpulan penelitian akan lebih baik bila disertai dengan gambar, tabel, grafik, atau tampilan lainnya.
3.3 Teknik Analisa Data
3.3.1 K-Means
K-Means dalam r menggunakan fungsi kmeans() dimana algoritmanya adalah kmeans(x, centers, iter.max, nstart = 1). x adalah data yang digunakan, centers adalah jumlah klaster yang diinginkan, iter.max adalah jumlah iterasi/pengulangan maksimal yang diinginkan, dan nstartadalah jumlah percobaan yang ingin dilakukan sebelum menetapkan centroid ke suatu klaster.
3.3.2 EM (Expectation Maximization)
EM dalam r melalui 3 tahap. Tahap pertama dilakukan menggunakan fungsi exhaust.EM, tahap kedua memprosesnya dengan fungsi shortemcluster, dan tahap terakhir menggunakan fungsi emcluster. Algoritmanya adalah exhaust.EM(x,nclass) dimana x adalah data yang digunakan, dan nclass adalah jumlah klaster. Algoritma tahap kedua adalah shortemcluster(x, emobj,maxiter) dimana emobj adalah hasil tahap pertama, maxiter adalah maksimal iterasi/pengulangan yang diinginkan. Algoritma tahap ketiga adalah emcluster(x, emobj, assign.class = TRUE) dimana emobj adalah hasil tahap kedua, dan assign.class berfungsi untuk menunjukkan apakah akan ada klasterisasi atau tidak.
3.3.3 GG-Plot
GG-Plot dari package ggplot2 akan digunakan oleh peneliti untuk memvisualisasikan hasil klasterisasi algoritma K-Means dan EM guna membandingkan secara visual hasil klasterisasi kedua algoritma dengan data mentahan. Fungsi yang digunakan adalah ggplot(), dan algoritmanya adalah ggplot(aes(x,y, color))+geom_point() + facet_wrap(). x dan y diisi dengan variabel di bagian sumbu x dan sumbu y, color diisi dengan klaster-klaster yang diinginkan, geom_point() dimasukkan karena visualisasi dalam bentuk poin, facet_wrap() berguna untuk memisahkan hasil klasterisasi data raw, EM, dan K-Means.
3.3.4 Principal Component Analysis (PCA)
PCA adalah teknik yang berguna untuk analisis data eksplorasi, memungkinkan Anda untuk lebih memvisualisasikan variasi yang ada dalam kumpulan data dengan banyak variabel. Ini sangat membantu dalam kasus kumpulan data “lebar,” di mana Anda memiliki banyak variabel untuk setiap sampel. Hayden (2018)
3.3.5 Metode elbow
Metode Elbow merupakan suatu metode yang digunakan untuk menghasilkan informasi dalam menentukan jumlah cluster terbaik dengan cara melihat persentase hasil perbandingan antara jumlah cluster yang akan membentuk siku pada suatu titik. algoritma dari elbow sendiri merupakan
fviz_nbclust(Data, kmeans, method = "wss")
3.3.6 Metode Silhouette
Silhouette Coefficient digunakan untuk melihat kualitas dan kekuatan cluster, seberapa baik suatu objek ditempatkan dalam suatu cluster. Metode ini merupakan gabungan dari metode cohesion dan separation.
fviz_nbclust(Data, kmeans, method = "silhouette")
BAB 4
HASIL DAN PEMBAHASAN
4.1 Eksplorasi Data
4.1.1 Package
library(ggplot2)
library(DT)
library(EMCluster)
library(FactoMineR)
library(reshape2)
library(summarytools)
library(dplyr)4.1.2 Input Data
data(iris)
datatable(iris)4.1.3 Ringkasan Statistik Data
summary(iris)## 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.4 Visualisasi Data
plot(iris$Sepal.Length, iris$Petal.Width)4.2 Perbandingan algoritma EM dan K-Means
4.2.1 Penentuan Jumlah Kluster dengan Metode Elbow dan Silhouette
Metode Elbow
# Elbow
fviz_nbclust(iris[,-5], 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(iris[,-5], 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.
4.2.2 Perbandingan algoritma EM dan K-Means pada raw dataset
Untuk tahap awal kita melakukan set.seed untuk menyeragamkan hasil random generator number. Lalu setelah itu peneliti akan mengesktrak data dari data set iris. Peneliti juga melakukan konversi ke PCA dengan harapan data dengan PCA dapat memberikan hasil yang lebih baik, mempertimbangkan PCA membantu membuat data lebih mudah untuk divisualisasikan.
set.seed(123)
pca_iris=PCA(iris[,-5],scale.unit = T,ncp = 2,graph = F)
iris_sc=scale(iris[,-5],center = T,scale = T)Selanjutnya peneliti melakukan proses klasterisasi K-Means dan EM algorithm. Setelah itu hasil klasterisasi diekstrak dari tiap algoritma. Hasil dari algoritma K-Means diesktrak variabel cluster dan dari algoritma EM diekstrak variabel class.
K-Means
km_raw=kmeans(iris_sc, centers=3)Expectation Maximization
emobj <- exhaust.EM(iris_sc,nclass = 3)
emobj <- shortemcluster(iris_sc, emobj,maxiter = 1000)
em_raw <- emcluster(iris_sc, emobj, assign.class = TRUE)Penggabungan Data
dat_clust_raw=data.frame(iris_sc,
"Species"=as.factor(iris$Species),
kmeans=as.factor(km_raw$cluster),
EM=as.factor(em_raw$class))Selanjutnya peneliti akan melihat jumlah centroid yang sesuai dengan data set raw dengan menyeragamkan terlebih dahulu klasterisasinya. setosa dibuat menjadi 1, versicolor dibuat menjadi 2, dan virginica dibuat menjadi 3. Untuk otomatis mengubah hasil klaster algoritma K-Means dan EM, di sini peneliti menggunakan fungsi modus. Fungsi modus tidak tersedia di dalam R, sehingga disini peneliti membuat function modus sendiri. Konsep yang digunakan untuk menkonversi hasil klaster K-Means dan EM adalah, modus dari 50 baris pertama akan diubah menjadi 1, modus dari 50 baris berikutnya menjadi 2, dan selanjutnya lagi menjadi 3.
Setelah itu untuk mendapatkan jumlah centroid yang sesuai dengan data set raw, peneliti mengurangi klaster data set raw dengan hasil klaster tiap algoritma. Jika hasil pengurangan adalah 0, maka centroid sesuai, jika tidak, maka tidak sesuai. Berikut adalah proses yang dilakukan oleh peneliti.
# Rumus modus
Mode <- function(x){
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
dat_clust_raw1 <- dat_clust_raw
#Konversi spesies data raw
dat_clust_raw1$Species <- ifelse(dat_clust_raw1$Species=="setosa", 1,
ifelse(dat_clust_raw1$Species=="versicolor", 2, 3))
#Konversi hasil klaster K-Means
dat_clust_raw1$kmeans <- ifelse(dat_clust_raw1$kmeans == Mode(dat_clust_raw1$kmeans[1:50]),
1,
ifelse(dat_clust_raw1$kmeans == Mode(dat_clust_raw1$kmeans[51:100]), 2, 3))
#Konversi hasil klaster EM
dat_clust_raw1$EM <- ifelse(dat_clust_raw1$EM == Mode(dat_clust_raw1$EM[1:50]),
1,
ifelse(dat_clust_raw1$EM == Mode(dat_clust_raw1$EM[51:100]), 2, 3))
#Menghitung centroid sesuai K-Means dan akurasi
kmeans_correct <- sum((dat_clust_raw1$Species-dat_clust_raw1$kmeans)==0, na.rm = T)
kmeans_acc <- kmeans_correct/150
#Menghitung centroid sesuai EM dan akurasi
em_correct <- sum((dat_clust_raw1$Species-dat_clust_raw1$EM)==0, na.rm = T)
em_acc <- em_correct/150
#Menggabungkan hasil perhitungan centroid yang sesuai.
cluster_acc <- data.frame(Accuracy = rbind(kmeans_acc, em_acc),
Correct_Point = rbind(kmeans_correct, em_correct),
row.names = c("K-Means", "EM"))
cluster_acc## Accuracy Correct_Point
## K-Means 0.8333333 125
## EM 0.9666667 145
Dari tabel di atas bisa kita lihat bahwa EM memiliki akurasi yang lebih tinggi yaitu 96.67% dan centroid sesuai yang lebih banyak yaitu 145 centroid dari 150 centroid.
Selanjutnya peneliti akan memvisualisasikan hasil klasterisasi dari algoritma K-Means dan algoritma EM lalu membandingkannya dengan visualisasi klaster data set raw.
dat_raw=dat_clust_raw %>% melt(id.var=colnames(iris[,-5]))
dat_raw %>% ggplot(aes(x=Sepal.Length,y=Petal.Width, color=value))+geom_point()+
facet_wrap(~variable)+theme_grey()+
theme(strip.background =element_rect(fill="darkred"))+
theme(strip.text = element_text(colour = 'white'))+guides(color=FALSE)Dari grafik dapat dilihat secara langsung bahwa hasil klaster EM jauh lebih menyerupai Species atau milik raw data set. Yang dilihat di sini adalah warna dari centroid atau poin-poinnya. warna yang sama menandakan bahwa centroid itu sesuai.
Selanjutnya peneliti melakukan proses klasterisasi K-Means dan EM algorithm terhadap data yang sudah dikonversi PCA. Setelah itu hasil klasterisasi diekstrak dari tiap algoritma seperti sebelumnya kita lakukan di data set raw. Hasil dari algoritma K-Means diesktrak variabel cluster dan dari algoritma EM diekstrak variabel class.
4.2.3 Perbandingan algoritma EM dan K-Means pada PCA dataset
K-Means
km_pca=kmeans(pca_iris$ind$coord, centers=3)Expectation Maximization
emobj_pca <- exhaust.EM(pca_iris$ind$coord, nclass = 3)
emobj_pca <- shortemcluster(pca_iris$ind$coord, emobj_pca,maxiter = 1000)
em_pca <- emcluster(pca_iris$ind$coord, emobj_pca, assign.class = TRUE)Penggabungan Data
dat_clust_pca=data.frame(pca_iris$ind$coord,"Species"=iris$Species,
kmeans=as.factor(km_pca$cluster), EM=as.factor(em_pca$class))Selanjutnya peneliti akan melihat jumlah centroid yang sesuai dengan data set raw dengan menyeragamkan terlebih dahulu klasterisasinya. setosa dibuat menjadi 1, versicolor dibuat menjadi 2, dan virginica dibuat menjadi 3. Untuk otomatis mengubah hasil klaster algoritma K-Means dan EM, di sini peneliti menggunakan fungsi modus. Fungsi modus tidak tersedia di dalam R, sehingga disini peneliti membuat function modus sendiri. Konsep yang digunakan untuk menkonversi hasil klaster K-Means dan EM adalah, modus dari 50 baris pertama akan diubah menjadi 1, modus dari 50 baris berikutnya menjadi 2, dan selanjutnya lagi menjadi 3.
Setelah itu untuk mendapatkan jumlah centroid yang sesuai dengan data set raw, peneliti mengurangi klaster data set raw dengan hasil klaster tiap algoritma. Jika hasil pengurangan adalah 0, maka centroid sesuai, jika tidak, maka tidak sesuai. Berikut adalah proses yang dilakukan oleh peneliti.
dat_clust_pca1<-dat_clust_pca
#Konversi spesies data raw
dat_clust_pca1$Species <- ifelse(dat_clust_pca$Species=="setosa", 1,
ifelse(dat_clust_pca$Species=="versicolor", 2, 3))
#Konversi hasil klaster K-Means
dat_clust_pca1$kmeans <- ifelse(dat_clust_pca$kmeans == Mode(dat_clust_pca$kmeans[1:50]),
1,
ifelse(dat_clust_pca$kmeans == Mode(dat_clust_pca$kmeans[51:100]), 2, 3))
#Konversi hasil klaster EM
dat_clust_pca1$EM <- ifelse(dat_clust_pca$EM == Mode(dat_clust_pca$EM[1:50]),
1,
ifelse(dat_clust_pca$EM == Mode(dat_clust_pca$EM[51:100]), 2, 3))
#Menghitung centroid sesuai K-Means dan akurasi
kmeans_correct_pca <- sum((dat_clust_pca1$Species-dat_clust_pca1$kmeans)==0, na.rm = T)
kmeans_acc_pca <- kmeans_correct_pca/150
#Menghitung centroid sesuai EM dan akurasi
em_correct_pca <- sum((dat_clust_pca1$Species-dat_clust_pca1$EM)==0, na.rm = T)
em_acc_pca <- em_correct_pca/150
#Menggabungkan hasil perhitungan centroid yang sesuai.
cluster_acc_pca <- data.frame(Accuracy = rbind(kmeans_acc_pca, em_acc_pca),
Correct_Point = rbind(kmeans_correct_pca, em_correct_pca),
row.names = c("K-Means", "EM"))
cluster_acc_pca## Accuracy Correct_Point
## K-Means 0.8333333 125
## EM 0.9066667 136
Dari tabel di atas bisa kita lihat bahwa EM memiliki akurasi yang lebih tinggi yaitu 90.667% dan centroid sesuai yang lebih banyak yaitu 136 centroid dari 150 centroid, sedangkan K-Means memiliki akurasi yang lebih sedikit seperti sebelumnya, yaitu 83.33% dengan jumlah centroid sesuai yang sedikit sama seperti sebelumnya, yaitu 125.
Selanjutnya peneliti akan memvisualisasikan hasil klasterisasi dari algoritma K-Means dan algoritma EM lalu membandingkannya dengan visualisasi klaster data set PCA.
dat_pca=dat_clust_pca %>% melt(id.var=c("Dim.1","Dim.2"))
dat_pca %>% ggplot(aes(x=Dim.1,y=Dim.2, color=value))+geom_point()+facet_wrap(~variable)+theme_grey()+
theme(strip.background =element_rect(fill="darkred"))+
theme(strip.text = element_text(colour = 'white'))+guides(color=FALSE)BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil yang didapatkan dari penelitian klasterisasi data iris menggunakan algoritma K-Means dan Expectation Maximization, maka peneliti menarik kesimpulan sebagai berikut:
1. Klasterisasi pada raw dataset iris lebih baik menggunakan algoritam EM, karena algoritma EM memiliki centroid sesuai yang lebih banyak dan tingkat akurasi yang lebih tinggi.
2. Klasterisasi pada PCA dataset iris juga lebih baik saat menggunkan algoritma EM yang menghasilkan lebih banyak centroid sesuai dan tingkat akurasi yang lebih tinggi.
3. Klasterisasi dengan algoritma K-Means lebih stabil dibanding EM, karena metode K-Means mendapatkan jumlah centroid sesuai yang sama dan tingkat akurasi yang sama pada raw dataset dan PCA dataset iris.
5.2 Saran
Saran-saran untuk mengembangkan penelitian-penelitian selanjutnya menjadi lebih baik dari penelitian ini berdasarkan hasil di atas adalah sebagai berikut:
1. Hasil klasterisasi pada dataset iris mungkin lebih baik saat menggunakan algoritma EM (Expectation Maximization), namun hal ini tidak berlaku untuk dataset penelitian lain, sehingga klasterisasi menggunakan kedua algoritma sangat disarankan.
2. Penggunaan PCA dataset harus dipertimbangkan dengan matang, karena proses PCA dapat menurunkan akurasi klasterisasi seperti yang terjadi pada algoritma EM, sehingga sebelum menggunakan PCA dataset ada baiknya jika peneliti mempertimbangkan hal-hal yang perlu diperhatikan.