Hierical Clustering menggunakan dataset USArrests

zahra sufi
6 min readMay 5, 2023

--

Assalamualaikum Wr. Wb.

Hai semuanya… Di artikel pertama aku kali ini, aku akan membahas sedikit tentang Hierarchial Clustering. Sebelum masuk Hierarchial Clustering, kalian tau ga sih apa itu clustering? Kalo belum tau yuk ikut aku dan baca sampai akhir yaa…

Clustering adalah salah satu teknik dari algoritma machine learning yaitu unsupervised learning. Algoritma clustering membagi populasi atau data point dengan sifat yang sama ke beberapa kelompok kecil untuk dikelompokkan. Teknik ini merupakan salah satu algoritma di dalam machine learning yang paling sering digunakan oleh perusahaan untuk melakukan segmentasi kepada customer mereka sehingga dapat meningkatkan penjualan di perusahaan mereka (Team, 2021).

Ada dua pendekatan yang digunakan dalam mengembangkan metode clustering, yakni pendekatan partisi dan clustering dengan pendekatan hierarki.

Partition-based Clustering Hierarki

Clustering dengan pendekatan partisi atau sering disebut dengan partition-based clustering adalah mengelompokkan data dengan memilah-milah data yang dianalisis ke dalam beberapa cluster yang sudah ada. Hal ini tidak memperhitungkan hierarki dari data tersebut.

Pada metode partitional clustering setiap cluster memiliki titik pusat cluster (centroid) dan secara umum metode ini memiliki fungsi tujuan yaitu memperkecil jarak (dissimilarity) dari seluruh data ke pusat cluster masing-masing.

Contoh metode partitional clustering: K-Means, Fuzzy K-means dan Mixture Modelling.

Hierarchical Clustering

Clustering dengan pendekatan hierarki atau sering disebut dengan hierarchical clustering mengelompokkan data dengan membuat suatu hierarki berupa dendogram di mana data yang mirip akan ditempatkan pada hierarki yang berdekatan dan yang tidak pada hierarki yang berjauhan.

Pada hierarchical clustering, data dikelompokkan melalui suatu bagan yang berupa hierarki, di mana terdapat penggabungan dua grup yang terdekat di setiap literasinya ataupun pembagian dari seluruh set data ke dalam cluster.

Contoh metode clustering hierarki di antaranya single linkage, complete linkage, average linkage, average group linkage (Yulianto, 2022).

Untuk artikel kali ini, aku mau melakukan clustering pada data penangkapan di negara amerika serikat. Disini, aku melakukan analisis menggunakan software Rstudio. Untuk data yang digunakan adalah dataset USArrests yang dapat diunduh pada website Kaggle.com

Pertama, kita memasukkan data pada software R menggunakan syntax seperti dibawah.

data.dead<-read.delim("clipboard")
data.dead

Setelah itu, kita dapat menggunakan syntax seperti dibawah untuk melihat statistika deskriptif dan visualisasi plot dari datanya.

summary(data.dead)
plot(data.dead)

Berikut gambar hasil statistika deskriptif dari data penangkapan di amerika serikat

Hasil Statistika Deskriptif

Dari hasil output diatas, diketahui kasus penangkapan di amerika serikat untuk kasus pembunuhan tertinggi mencapai angka 17,400 kasus dan untuk kasus pembuhan yang terendah sebesar 0,800 kasus. Lalu untuk kasus pemerkosaan tertinggi mencapai angka 46,00 kasus dan yang kasus pemerkosaan terendah sebesar 7,30 kasus.

Setelah itu, terdapat visualisasi plot dari penangkapan di amerika serikat yang menunjukkan kasus pembunuhan dan kasus pemerkosaan dari setiap Provinsi yang ada di Amerika Serikat.

Visualisasi Plot Statistika Deskriptif

Kemudian kita dapat melakukan uji asumsi yaitu uji multikolinearitas.

Uji multikolinearitas bertujuan untuk menguji apakah terdapat korelasi antar variabel bebas dalam suatu model regresi.

Kita dapat menggunakan syntax seperti dibawah untuk melihat hasil uji multikolinearitas dari datanya.

library(car)
multi_dead=cor(data.dead[,2:3])
multi_dead

Berikut gambar di bawah hasil uji multikolinearitas dari data penangkapan di amerika serikat

Uji Multikolineritas

Dari hasil output diatas, didapatkan informasi bahwa nilai korelasi antar variabel bebas tidak melebihi 0.8 sehingga dapat disimpulkan bahwa asumsi tidak terjadi multikolinearitas terpenuhi. Karena menurut (Gujarati, 2003), Jika nilai korelasi melebihi 0.8 maka hal tersebut menandakan terjadinya multikolinearitas antar variabel bebas. Setelah melakukan uji multikolineritas, kita dapat melakukan Clustering.

Clustering merupakan pengelompokan berdasarkan kemiripan karakteristik dengan melihat jarak antar data. Dengan demikian, perhitungan jarak antar data sangatlah penting.

Kita dapat menggunakan syntax seperti dibawah untuk perhitungan jarak Euclidean dari data penangkapan di amerika serikat

jarak_dead=dist(data.dead[,2:3])
jarak_dead
Output Perhitungan Jarak

Dari hasil output diatas merupakan sebuah matriks yang berjarak 30×30, jadi output di atas hanya sedikit gambarannya, nanti kalian bisa melihat hasil full nya ketika mencoba secara langsung.

Kemudian, setelah melakukan perhitungan jarak, kita dapat melakukan analisis clustering. Untuk analisis kali ini akan menggunakan beberapa metode yaitu single linkage, average linkage, complete linkage, dan ward’s method. Keempat metode agglonerative hierarchial clustering tersebut akan digunakan pada data penangkapan kasus yang kemudian akan dibandingkan nilai korelasi cophenetic-nya. Metode yang memiliki nilai korelasi cophenetic mendekati 1 adalah metode yang terbaik untuk digunakan.

Kita dapat menggunakan syntax seperti di bawah untuk menampilkan nilai korelasi cophenetic dari masing-masing metode.

##Korelasi Cophenetic##
#Single Linkage
d1 <- dist(data.dead[,2:3])
hc <- hclust(d1,"single")
d2 <- cophenetic(hc)
corsing=cor(d1,d2)
corsing

#Average Linkage
d1 <- dist(dead[,2:3])
hc <- hclust(d1,"ave")
d2 <- cophenetic(hc)
corave=cor(d1,d2)
corave

#Complete Linkage
d1 <- dist(data.dead[,2:3])
hc <- hclust(d1,"complete")
d2 <- cophenetic(hc)
corcomp=cor(d1,d2)
corcomp

#Ward's Method
d1 <- dist(data.dead[,2:3])
hc <- hclust(d1,"ward.D")
d2 <- cophenetic(hc)
corward=cor(d1,d2)
corward

Berikut gambar di bawah hasil nilai korelasi cophenetic dari masing-masing metode.

Nilai Korelasi cophenetic

Dari hasil output di atas, dapat dilihat nilai korelasi cophenetic dari keempat metode agglonerative hierarchial clustering yang digunakan, pada metode average linkage merupakan metode terbaik untuk data penangkapan karena memiliki nilai korelasi cophenetic tertinggi diantara metode yang lainnya yaitu sebesar 0.7792986. Metode yang memiliki nilai korelasi cophenetic mendekati 1 adalah metode yang terbaik untuk digunakan.Dengan demikian, analisis clustering pada data penangkapan di amerika serikat akan menggunakan metode average linkage.

Kita dapat menggunakan syntax seperti di bawah untuk melakukan analisis clustering dengan metode average linkage serta visualisasi dendogram dari metode tersebut.

hierarkie_ave=hclust(dist(scale(data.dead[,2:3])), method = "ave")
plot(hierarkie_ave, labels=data.dead$Province, main="Cluster Dendogram Average Linkage")

Berikut gambar di bawah hasil dari analisis clustering dengan metode average linkage dan visualisasi dendogram dari metode tersebut.

Visualisasi Dendogram

Kemudian, setelah dendogram berhasil dibentuk kita akan membagi 5 cluster dengan menggunakan syntax seperti berikut.

plot(hierarkie_ave, labels=data.dead$Province, main="Cluster Dendogram Average Linkage")
rect.hclust(hierarkie_ave, k=5, border = 1:5)

Berikut gambar di bawah hasil pembagian 5 cluster pada dendogram

Visualisasi Cluster Dendogram

Setelah itu, kita dapat melihat jumlah anggota dari masing-masing cluster tersebut dengan menggunakan syntax seperti berikut.

anggota=cutree(hierarkie_ave, k=5)
table(anggota)

Berikut gambar di bawah hasil jumlah anggota dari masing-masing cluster

Jumlah Anggota Cluster

Dari hasil output di atas, dapat dilihat bahwa cluster pertama memiliki 7 anggota, cluster kedua memiliki 4 anggota, cluster ketiga memiliki 9 anggota, cluster keempat 18 anggota dan cluster kelima memiliki 12 anggota. Lalu kita dapat melihat anggota dari masing-masing cluster dengan menggunakan syntax seperti berikut.

rownames(data.dead)[anggota==1]
rownames(data.dead)[anggota==2]
rownames(data.dead)[anggota==3]
rownames(data.dead)[anggota==4]
rownames(data.dead)[anggota==5]

Berikut gambar di bawah hasil anggota dari masing-masing cluster

Anggota Cluster

Dari hasil output diatas, dapat dilihat anggota dari masing-masing cluster dengan nomor urut dari data penangkapan. Untuk memudahkan melihat anggotanya berikut ini adalah tabel anggota dari masing-masing cluster.

Tabel Anggota Cluster

Sekian artikel pertama yang aku buat, maaf kalau dalam penulisan ada salah kata. Semoga artikel ini bermafaat buat kita semua…

Makasih juga buat yang sudah membaca dari awal sampai akhir… sampai jumpa di artikel selanjutnya yaaa❤

Wassalamualaikum Wr. Wb.

--

--

Responses (1)