• Tidak ada hasil yang ditemukan

Dokumen Tentang Introduction Clustering

N/A
N/A
nuchaila ainiyah

Academic year: 2023

Membagikan "Dokumen Tentang Introduction Clustering"

Copied!
4
0
0

Teks penuh

(1)

# Melihat daftar dataset dan memilih dataset data("USArrests")

# Assign dataset ke variabel df df <- USArrests

#Untuk menghilangkan missing values yang mungkin ada di dalam dataset, gunakan perintah berikut:

df <- na.omit(object = df)

#Kita tidak ingin algoritma clustering bergantung pada arbitrary variable unit atau data yang berubah- ubah, disinilah kita scaling/menstandarisasikan datanya menggunakan fungsi scale(). Perintahnya:

df <- scale(x = df) head(x = df, n = 5)

#Apa proses yang terjadi dalam fungi scale()? Fungsi scale() akan menghitung rata-rata (mean) dan standar deviasi (standard deviation) dari seluruh vektor yaitu dataset atau variabel df, lalu

“menskalakan” (scaling) setiap elemen dengan nilai-nilai tersebut dengan mengurangi mean dan membaginya dengan sd.

# Scaling manual kolom Murder

scl <- (USArrests$Murder - mean(USArrests$Murder)) / sd(USArrests$Murder) head(scl, 5)

#Package yangharus di install

# Install packages

install.packages(c("cluster", "factoextra"))

# Load packages library(cluster) library(factoextra)

# Perhitungan jarak matriks set.seed(123)

ss <- sample(1:50, 15)

df <- USArrests[ss, ] #USArrests mengikuti kondisi yang sesuai di variabel ss, kecuali kolomnya.

df.scaled <- scale(df)

(2)

print(df.scaled)

#Menghitung jarak euclidean

dist.eucl <- dist(df.scaled, method = "euclidean") round(as.matrix(dist.eucl)[1:3, 1:3], 1)

#Menghitung jarak berbasis korelasi

dist.cor <- get_dist(df.scaled, method = "pearson") round(as.matrix(dist.cor)[1:3, 1:3], 1)

# Load data data(flower) head(flower, 5) str(flower)

dd <- daisy(flower)

round(as.matrix(dd)[1:3, 1:3], 2)

#membuat heatmap fviz_dist(dist.eucl)

######### K-Means Clustering########

df <- scale(USArrests)

#menentukan jumlah cluster optimal

fviz_nbclust(x = df, FUNcluster = kmeans, method = "gap_stat")

#fviz_nbclust(...): Fungsi yang menentukan dan memvisualisasikan jumlah cluster yang optimal.

#x = df: parameter penyimpan data frame,

#FUNcluster = kmeans: parameter partisi atau yang berfungsi untuk membagi cluster,

#method = "gap_stat": adalah metode yang digunakan untuk memperkirakan jumlah cluster.

#Menghitung dan visualisasi clustering k-means:

set.seed(123)

km.res <- kmeans(x = df, centers = 2, nstart = 25)

(3)

str(km.res)

fviz_cluster(object = km.res, data = df, palette = "jco", ggtheme = theme_minimal())

#kmeans(...): Melakukan klastersisasi pada data matriks dengan perhitungan k-means.

#x = df: parameter penyimpan data frame,

#centers = 2: jumlah clutser yang didapat atau diinginkan,

#nstart = 25: jumlah random sets yang dipilih. Ini berlaku hanya jika parameter centers berisi nomor/angka,

#fviz_cluster(...): fungsi untuk memvisualisasikan hasil klasterisasi,

#object = km.res: objek yang berisi hasil partisi dari fungsi kmeans(),

#data = df: df adalah data yang sudah digunakan untuk clustering. Ini hanya digunakan bila objeknya (parameter object) berbentuk class yang terlihat seperti di akhir baris dari kode str(km.res) yang ada dibawah ini.

#ggtheme = theme_minimal(): Bentuk visual atau tema yang disediakan ggplot2. Pilihannya ada theme_gray(), theme_classic() dll.

########Hirarki cluster#########

res.hc <- hclust(dist(df), method = "ward.D2") fviz_dend(x = res.hc, cex = 0.5, k = 4, palette = "jco")

#hclust(...): Sesuai namanya hclust alias hierarchical clustering yaitu fungsi yang mencari dan menganalisa klaster hierarki dalam suatu data yang diberikan. Dalam kasus ini, datanya adalah yang sudah diolah dengan fungsi dist().

#dist(df): Distance matrix computation atau dist adalah fungsi yang menghitung dan mengembalikan nilai matriks jarak dari sebuah data.

#method = "ward.D2": Metode aglomerasi atau mudahnya perhitungan yang dipakai, yaitu ward.D2.

Pengenalan tentang apati ward.D2 bisa di lihat di sini dan sini.

#fviz_dend(...): Fungsi turunan dari ggplot2 yang otomatis membuat visual dendogram.

#x = res.hc: Objek data yang berbentuk class atau yang sudah diolah dengan fungsi hclust(), dlana(), hkmeans(), dll.

#cex = 0.5: Ukuran label.

#k = 4: k_colors atau singkatnya k adalah parameter untuk memberikan jumlah variasi warna untuk per grup yang diambil dari parameter palette. Jika diberikan angka 2 maka variasi warnanya cuma dua misal merah dan hijau.

(4)

#palette = "jco": Parameter palette dengan input-an jco adalah kumpulan atau set warna yang siap pakai.

Bisa diganti dengan warna npg, aaas, uchicago, dll.

library(pheatmap)

pheatmap(t(df), cutree_cols = 4, fontsize_col = 8.5)

#pheatmap(...): Fungsi untuk menggambarkan penyebaran kelompok atau cluster.

#t(df): Parameter t untuk membalikkan posisi matriks sepanjang diagonal utamanya. Atau simpelnya yaitu transpose.

#cutree_cols = 4: Jumlah kolom yang akan dibagi atau dipecah berdasarkan jumlah cluster. Kenapa 4?

Coba jalankan dan lihat hasil dari baris kode t(df) agar tahu jawabannya.

#fontsize_col = 8.5: Menentukan ukuran besar-kecil label kolom.

Referensi

Dokumen terkait