Belajar Hierarchy Clustering Menggunakan R


Contoh Soal: 

Buatlah satu analisis cluster hierarchy menggunakan data sampel wanita di AS (women dataset di R).
Packages: factoextra
Library:factoextra 
Data:Women dataset in R


STEP-1: Exploratory Data Analysis

head(women, nrow = 6) # Show 6 rows pertama data wanita di US


Perhatikan ada dua kolom yaitu kolom height (tinggi badan) dan kolom weight (berat badan). Apakah data bisa langsung dibandingkan? Tidak bisa, karena berbeda satuan, tinggi badan dalam inch dan berat badan dalam lbs.

Supaya bisa dibandingkan, kita membuat skala dalam R digunakan fungsi scale() gunanya untuk mendapatkan jarak yang seimbang antara dua dimensi atau lebih dengan beda satuan.

df <- scale(women) # skala data
head(df, nrow = 6) # Show 6 rows pertama hasil skala


STEP-2: Menghitung Jarak Eucledian


Sekarang kita menghitung jarak eucledian dari df. Disini kita gunakan fungsi dari R dist atau distance (jarak) formatnya dist(namavariable,method) hasilnya disimpan dalam variabel women.dist. Run:

women.dist <- dist(df, method = "euclidean")  # menghitung jarak
as.matrix(women.dist)[1:5, 1:5] # menampilkan matrix


Berapa jarak wanita kedua dan ketiga? Jawab: 0.2957487
Apakah jarak wanita kedua dan ketiga dengan jarak wanita ketiga dan kedua sama? Jawab Ya mengapa? Karena jarak pada dua objek yang sama.
Berapa jarak wanita keempat dan keempat? Jawab NOL mengapa? Jarak pada dirinya sendiri=NOL.

STEP-3: Membuat Hierarchy Cluster (HC)

Sekarang kita membuat hierarchy cluster. Fungsi yang digunakan adalah hc.lust(d,method) dimana d adalah struktur hasil proses fungsi dist() dan ada beberapa macam pilihan method jarak antar cluster di R:
  • single linkage: "single" 
  • complete linkage: "complete"
  • average linkage: "average"
  • centroid linkage: "centroid"
  • ward D2  "ward.D2" 
  • mcquitty: "mcquitty"
  • median: "median" (= WPGMC)
Contohnya kita pergunakan ward D2:
women.hc <- hclust(d = women.dist, method = "ward.D2")

STEP -4: Visualisasi Dendrodram

Dendrodram merupakan visualisasi hasil hierarchy clustering dalam bentuk hirarki menggunakan library factoextra dan fungsi fviz_dend(hasilcluster,cex) Run program ini:

library("factoextra") #gunakan library factoextra
fviz_dend(women.hc, cex = 0.5) #membuat dendodram

Bila kita membagi data women menjadi 2 cluster, maka
- Cluster pertama={11,12,13,14,15}
- Cluster kedua ={1,2,3,…10}

Bila kita membagi data women menjadi 3 cluster, maka
- Cluster pertama={11,12,13,14,15}
- Cluster kedua ={1,2,3,4,5}
- Cluster ketiga ={6,7,8,9,10}

gambar 1 dendodram


Praktekkan metode single linkage, complete linkage, average linkage, dan juga centroid untuk membuat 3 cluster dan kemudian kita dapatkan hasil berikut ini:
  • Dari Metode Ward.D2, complete, average, dan centroid: K1={11,12,13,14,15}, K2={1,2,3,4,5}, K3={6,7,8,9,10}
  • Single linkage K1={14}, K2={15}, K3={1,2,3,…13}

Kesimpulan

  • Single linkage tidak bisa dipergunakan dalam membuat cluster untuk dataset women. Sedangkan yang lain menghasilkan cluster yang sama. 3 cluster yang benar adalah K1={11,12,13,14,15},K2={1,2,3,4,5},K3={6,7,8,9,10}

No comments:

Post a Comment