Dalam ilmu data, pada dasarnya ada tiga sub-bidang model statistik: pembelajaran terawasi, pembelajaran tak terawasi, dan pembelajaran penguatan. Pada bab ini kita akan berfokus pada pembelajaran tak terawasi, khususnya pengelompokan. Model pembelajaran tak terawasi adalah metode statistik deskriptif tidak seperti pembelajaran terawasi, yang merupakan metode statistik inferensial untuk memprediksi hasil atau parameter berdasarkan kumpulan data.

Salah satu area utama dalam pembelajaran tak terawasi adalah pengelompokan. Metode pengelompokan adalah mengelompokkan pengamatan dalam kumpulan data berdasarkan “kesamaan” mereka. “Pengukuran kemiripan” ini didefinisikan sebagai “dot product” dari vektor-vektor dalam sebuah ruang vektor.

Pada bagian ini kita mempertimbangkan sebuah set data kriminalitas dari Amerika Serikat, set data “USArrests” dari R. Data ini berisi informasi mengenai penangkapan yang dilakukan di Amerika Serikat: rata-rata penangkapan per 100,000 penduduk untuk penyerangan, pembunuhan, pemerkosaan, dan persentase penduduk yang tinggal di daerah perkotaan di masing-masing 50 negara bagian pada tahun 1973.

Di sini kita menerapkan fungsi hclust() dari R untuk melihat pengelompokan, yaitu mengelompokkan berdasarkan kesamaan antara setiap pengamatan. Pertama, kita mengunggah data “USArrests” dari R:

df <- USArrests

Untuk mengamati 6 observasi pertama, gunakan fungsi head():

head(df)
##            Murder Assault UrbanPop Rape
## Alabama      13.2     236       58 21.2
## Alaska       10.0     263       48 44.5
## Arizona       8.1     294       80 31.0
## Arkansas      8.8     190       50 19.5
## California    9.0     276       91 40.6
## Colorado      7.9     204       78 38.7

Lalu, jika kita ingin membersihkan data maka lakukan dengan menghapus data yang tidak memiliki nilai dengan fungsi na.omit() :

df <- na.omit(df)

Kemudian kita menggunakan fungsi scale() untuk “menstandarkan” setiap pengukuran. Alasan mengapa kita menerapkan fungsi ini adalah karena beberapa pengukuran jauh lebih besar daripada yang lain. Sebagai contoh, seorang siswa mengikuti tes ACT dan SAT. SAT memiliki nilai maksimum 1600 dan ACT memiliki nilai maksimum 36.

Jika siswa ini ingin mengetahui tes mana yang lebih baik, Anda tidak bisa hanya membandingkan skor ini. Jika kita menghitung seberapa jauh nilai siswa untuk SAT atau ACT dari nilai rata-rata, maka kita dapat membandingkan nilai siswa pada ACT dan SAT. Fungsi scale() menghitung seberapa jauh setiap pengamatan berada dari rata-rata.

df <- scale(df)

Lalu kita gunakan fungsi jarak “Euclidean” untuk menghitung seberapa jauh jarak antara kedua observasi tersebut

d <- dist(df, method = "euclidean")

Sekarang kita siap untuk menerapkan fungsi hclust() untuk pengelompokan menggunakan metode “pengelompokan hirarkis”:

hc <- hclust(d)

Kita dapat melihat bagaimana metode ini mengelompokkan data bersama-sama dengan “dendrogram”. Ada beberapa cara untuk melihat berapa banyak kelompok (cluster) yang ada dalam kumpulan data. Di sini, dari “dendrogram” kita tahu bahwa pada dasarnya ada empat kelompok dalam kumpulan data. Dengan demikian, kita membuat keempat kelompok tersebut menjadi satu:

sub_grp <- cutree(hc, k = 4)

Untuk menunjukkan plot dari data yang sudah kita kelompokkan sebelumnya, kita gunakan library factoextra lalu gunakan fungsi fvis_cluster() untuk menampilkan nya :

library(factoextra)
## Warning: package 'factoextra' was built under R version 4.2.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.2.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_cluster(list(data = df, cluster = sub_grp))