Blog

Latest News and Updates

Rlogo-1.png

Clustering Menggunakan R

Halo semuaaaa, kali ini kita mau belajar Clustering menggunakan R nih. Ada 2 jenis clustering yg sudah kita pelajari, yaitu Hierarchical dan Non-Hierarchical Clustering. Kemarin kan belajarnya masih itung-itung sendiri tuh hehe nah kalo datanya banyak gak mungkin itung-itung sendiri kan? Oke deh langsung cus aja bagaimana ceritanya~~~

Data yang digunakan : Iris

  1. K-Means Clustering

K-Means merupakan salah satu metode pengelompokan data nonhierarki yang mempartisi data yang ada kedalam bentuk dua atau lebih kelompok. Metode ini mempartisi data kedalam kelompok sehingga data yang berkarakteristik sama dimasukkan kedalam satu kelompok yang sama dan data yang berkarakteristik berbeda dikelompokkan kedalam kelompok yang lain.

Pada R untuk melakukan pengklasteran dengan menggunakan k-means dapat dilakukan dilakukan dengan menggunakan fungsi kmeans(data,k), dimana:

  • data : data yang akan di clustering
  • k      : jumlah kluster

 

#Menyimpan data iris menjadi iris2

#Menghilangkan atribut Species pada iris2

#Melakukan pengklasteran k-means dengan k=3, dan simpan hasilnya pada kmeans.result

iris2 <- iris

iris2$Species <- NULL

(kmeans.result <- kmeans(iris2, 3))

#Membandingkanlah hasil pengklasteran kmeans dengan atribut Species pada data iris

table(iris$Species, kmeans.result$cluster)

#Untuk melihat hasil plot antara kluster dengan pusat kluster dapat dilakukan dengan fungsi berikut:

plot(iris2[c(“Sepal.Length”, “Sepal.Width”)], col = kmeans.result$cluster)

points(kmeans.result$centers[,c(“Sepal.Length”,”Sepal.Width”)], col = 1:3, pch = 8, cex=2)

 

  1. K-Medoids Clustering

Algoritma k-medoids hampir sama dengan algoritma k-means, dimana keduanya sama=sama mempartisi data yang ada ke dalam bentuk dua atau lebih kelompok. Perbedaanya adalah jika pada k-means cluster diwakili dengan pusat dari cluster, sedangkan pada k-medoids, cluster diwakili oleh objek terdekat dari pusat cluster.

Pada R untuk melakukan pengklasteran dengan menggunakan k-means dapat dilakukan dilakukan dengan menggunakan fungsi pamk(data) dan pam(data, k). Perbedaan dari kedua fungsi ini terletak dari jumlah k yang diinginkan, dimana pada pamk(data) jumlah k tidak dapat diset sesuai dengan keinginan, sedangkan pada pam(data, k) jumlah k yang diinginkan langsung dapat diset pada fungsi tersebut.

 

#Menggunakan data iris2 yang telah dihilangkan atribut Speciesnya

#Melakukan pengklasteran dengan menggunakan fungsi pamk() dan simpan hasilnya pada pamk.result

library(fpc)

pamk.result <- pamk(iris2)

#Untuk menampilkan jumlah kluster yang terbentuk

pamk.result$nc

#Membandingkanlah hasil pengklasteran k-medoids pamk() dengan atribut Species pada data iris

table(pamk.result$pamobject$clustering, iris$Species)

#Untuk melihat plot dari hasil pamk.result

layout(matrix(c(1,2),1,2)) # 2 graphs per page

plot(pamk.result$pamobject)

layout(matrix(1)) # change back to one graph per page

  • Maka hasilnya akan seperti ini:kmedoids

 

Gambar sebelah kiri adalah clusplot 2-dimensi (clustering plot) dari dua kelompok dan garis menunjukkan jarak antara cluster. Gambar sebelah kanan menunjukkan silhouettes. Dalam silhouettes, nilai Si yang besar (hampir 1) meunjukkan bahwa pengamatan yang sesuai terkelompok sangat baik, nilai Si yang mendekati 0 berarti pengamatan terletak di antara dua kelompok, dan pengamatan dengan Si negatif mungkin ditempatkan di cluster yang salah. Karena Si rata-rata adalah masing-masing 0,81 dan 0,62 di  silhouettes di atas, mengidentifikasikan bahwa dua kelompok ini baik.

 

 

#Melakukan pengklasteran dengan menggunakan fungsi pam() dan simpan hasilnya pada pam.result

pam.result <- pam(iris2, 3)

#Membandingkanlah hasil pengklasteran k-medoids pam() dengan atribut Species pada data iris

table(pam.result$clustering, iris$Species)

#Untuk melihat plot dari hasil pam.result

layout(matrix(c(1,2),1,2)) # 2 graphs per page

plot(pam.result)

layout(matrix(1)) # change back to one graph per page

 

 

  1. Hierachical Clustering

Hierachical Clustering adalah algoritma klustering yang mengelompokkan data dengan membuat suatu hirarki berupa dendogram dimana data yang mirip akan ditempatkan pada hirarki yang berdekatan dan yang tidak pada hirarki yang berjauhan.

Pada R untuk melakukan pengklasteran dengan menggunakan hierachical clustering dapat dilakukan dilakukan dengan menggunakan fungsi hclust(dist(data), method=”linkType“) dimana:

  • data: data yang akan di
  • linkType: untuk menentukan tipe penentuan pemilihan jarak yang dipakai.

 

#Mengambil 40 data dari dataset iris, simpan pada irisSample dan hapus variabel Species

idx <- sample(1:dim(iris)[1], 40)

irisSample <- iris[idx,]

irisSample$Species <- NULL

#Melakukanlah pengklasteran hierachical clustering dengan menggunakan metode single linked dan simpan hasilnya pada hc

hc <- hclust(dist(irisSample), method=”single”)

#Untuk melihat hasil clustering plot dengan pelabelan berdasarkan atribut Species pada data iris

plot(hc, hang = -1, labels=iris$Species[idx])

 

 

 

 

Referensi :

  1. Yanchang Zhao. 2012. R and Data Mining: Examples and Case Studies.

http://www.rdatamining.com/docs/RDataMining.pdf

  1. Han, J. (2006) Data Mining: Concepts and Technique. [Internet]. [diunduh 2014 Mar

24]. Tersedia pada: http://www.cs.uiuc.edu/homes/hanj/bk2/slidesindex.htm

 

gsbipbClustering Menggunakan R
Share this post

Join the conversation