K-Means Clustering dengan R

IRSYIFA MAYZELA AFNAN
5 min readJul 25, 2021

--

Halo teman-teman!! pada kesempatan kali ini, saya akan membahas tentang K-Mean Clustering menggunakan software R. Sudah ada yang tau belum apa itu K-Mean Clustering (?). Oke, langsung dibahas aja yahh, biar yang belum tau jadi tauuu ❤❤

Check This Out!!!

Apa itu K-Means Clustering ???

K-Means Clustering adalah suatu metode penganalisaan data atau metode Data Mining yang melakukan proses pemodelan tanpa supervisi (unsupervised) dan merupakan salah satu metode yang melakukan pengelompokan data dengan sistem partisi. Metode ini mempartisi data ke dalam cluster sehingga data yang memiliki karakteristik yang sama dikelompokkan ke dalam satu cluster yang sama dan data yang mempunyai karateristik yang berbeda di kelompokan ke dalam cluster yang lain.

from K-means clustering

Bagaimanakah Proses K-Means Clustering?

  1. Tentukan Jumlah Cluster
  2. Alokasikan data ke dalam cluster secara random
  3. Hitung centroid/rata-rata dari data yang ada di masing-masing cluster
  4. Kembali ke Step 3, apabila masih ada data yang berpindah cluster atau apabila perubahan nilai centroid, ada yang di atas nilai threshold yang ditentukan atau apabila perubahan nilai pada objective function yang digunakan di atas nilai threshold yang ditentukan

Dataset yang akan saya gunakan dalam percobaan penggunaan SOM ini yaitu dataset Iris. Dataset Iris merupakan kumpulan data bunga iris. Data ini terdiri dari 50 sampel dimana masing-masing dari tiga spesies Iris adalah (Iris Setosa, Iris virginica, dan Iris versicolor). Empat fitur diukur dari masing-masing sampel yaitu panjang sepal, panjang kelopak, lebar sepal, dan lebar kelopak dalam satuan sentimeter.

Langkah-langkah yang harus dilakukan

Langkah 1 : Menginstall dan memanggil packages

install.packages("tidyverse")
install.packages("cluster")
install.packages("factoextra")
library(tidyverse)
library(cluster)
library(factoextra)

Langkah 2 : Loading Datasets Iris , Melihat Data, Struktur Data, Data Teratas, dan Ringkasan Data

Struktur Data
Data Teratas dari Iris
Ringkasan Data

Dari ringkasan data dapat diketahui bahwa data Iris memiliki 5 variabel diantaranya Sepal Length, Sepal Width, Petal Length, Petal Width, dan Species. Variabel Sepal Length memiliki nilai maksimum sebesar 7,9 dan nilai minimum sebesar 4,3 dengan rata-rata sebesar 5,843. Begitu juga pada variabel lainnya dapat dilihat pada gambar diatas. Data ini terdiri dari 50 sampel dimana masing-masing dari tiga spesies Iris adalah (Iris Setosa, Iris virginica, dan Iris versicolor).

Langkah 3 : Melakukan standarisasi data

Data Iris berupa data numerik sehingga perlu dilakukan standarisasi data. Disini saya akan menggunakan kolom 1 hingga 4 saja, karena kolom ke-5 tidak berupa numerik. Kolom 1 hingga 4 diambil dan dibentuk menjadi suatu data frame.

databaru=data.frame(data[1:4])
databaru
data2<- scale(databaru)
data2

Fungsi scale berguna untuk menyamakan satuan dari datanya.

Data Baru Setelah dilakukan Standarisasi

Langkah 4 : Nilai K-Optimum dengan metode elbow, silhouette, dan gap statistic

# METODE  ELBOW atau WSS
fviz_nbclust(data2, kmeans, method = "wss")
# METODE SILHOUETTE
fviz_nbclust(data2, kmeans, method = "silhouette")
# METODE GAP STATISTIC
dim(databaru)
set.seed(1234)
gap_stat <-clusGap(data2, FUN=kmeans, nstart=25, K.max=10, B= 150)
fviz_gap_stat(gap_stat)

Dari ketiga metode yang digunakan , kita dapat menentukan jumlah k optimal dengan cara berikut.

  1. Jika ketiga metode menghasilkan K yang sama, maka nilai k tersebut yang digunakan.
  2. jika ketiga tersebut menghasilkan k yang berbeda, maka nilai k yang digunakan adalah yang terbanyak atau dominan.

Berikut output metode Elbow atau WSS.

Plot WSS

Dengan menggunakan metode wss dapat dilihat dari grafik bahwa pergerakannya mulai landai dari yang pertama setelah curam. Pergerakannya landai pertama yaitu pada 3–4, sehingga nilai koptimum metode wss yang disarankan adalah 3 .

Metode Silhouette

Dengan menggunakan metode silhouette , dilihat dari garis tertinggi atau melihatnya dengan melihat garis yang paling optimum. Sehingga diketahui nilai k yang optimum adalah 2, namun ada opsional lain yaitu menentukan nilai k dengan menggunakan grafik paling tinggi berikutnya setelah grafik paling tinggi pertama yakni grafik tertingi kedua , berarti nilai k optimum metode silhouette adalah 3 .

Metode GAP Statistic

Dengan menggunakan metode GAP Statistic dapat dilihat bahwa k optimum diwakili dengan garis yang dihubungkan dengan garis putus-putus. Sehingga nilai K optimum metode gap_stat adalah 3 .

Disimpulkan bahwa dengan menggunakan 3 metode , mka nilai K optimum = 3

Langkah 5 : Membuat cluster dengan K-Means

final <- kmeans(data2, 3)
print(final)
fviz_cluster(final, data = data2)
iris %>%
mutate(Cluster = final$cluster) %>%
group_by(Cluster) %>%
summarise_all("mean")

Sehingga dihasilkan output sebagai berikut.

Dengan menggunakan k=3 ,diketahui cluster 1 memiliki jumlah data sebesar 53 , cluster 2 memiliki jumlah data sebesar 50 , dan cluster 3 memiliki jumlah data sebesar 47. didapatkan nilai within cluster sum of squares dari cluster k-means dengan k=3 yaitu untuk cluster 1 sebesar 44.08754, cluster 2 sebesar 47.35062, dan cluster 3 sebesar 47.45019. Dengan nilai between_SS atau between sum of squares dibagi nilai total_SS sebesar 76.7%.

Berikut hasil cluster yang digunakan

Hasil Cluster

Visualisasi ini digunakan untuk mengetahui persebaran data berdasarkan pengelompokan cluster nya.

Cluster 1 berwarna hijau dengan anggota cluster yaitu data 4, 5, 6, 7, 12, 15, 16 dan lain-lain yang berada pada daerah hijau,

Cluster 2 berwarna merah dengan anggota cluster yaitu data 54, 58, 61, 65, 88, 99, dan lain-lain yang berada pada warna merah, dan

Cluster 3 berwarna biru dengan anggota cluster yaitu data 52, 71, 76, 86, 109, 118, dan lain-lain yang berada pada warna biru.

Oke teman-teman, sampai sini dulu ya….

Kalian bisa mencoba menggunakan metode K-Means Clustering ini dengan data lain.

Terima kasih dan sampai jumpa di artikel selanjutnya! :)

--

--

No responses yet