This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.
Dalam ilmu data, ada tiga sub-area utama dari model statistik: supervised learning (pembelajaran terawasi), unsupervised learning (pembelajaran tanpa pengawasan), dan reinforcement learning (pembelajaran dengan penguatan). Pada bab ini, kita akan fokus pada unsupervised learning, khususnya clustering (pengelompokan). Model unsupervised learning adalah metode statistik deskriptif, berbeda dengan supervised learning yang merupakan metode statistik inferensial untuk memprediksi hasil atau parameter berdasarkan satu set data. Salah satu area utama dalam unsupervised learning adalah clustering. Metode clustering digunakan untuk mengelompokkan pengamatan dalam satu set data berdasarkan “kemiripan” mereka. “Pengukuran kemiripan” ini didefinisikan sebagai “dot product” dari vektor-vektor dalam ruang vektor.
Dalam bagian ini, kita akan menggunakan fungsi hclust() dari R untuk melihat pengelompokan atau clustering, yaitu pengelompokan berdasarkan kemiripan antara setiap pengamatan. Pertama, kita akan mengambil data “USArrests” dari R, yang merupakan kumpulan data tentang penangkapan kriminal di Amerika Serikat. Data ini berisi informasi tentang jumlah rata-rata penangkapan per 100.000 penduduk untuk kasus serangan, pembunuhan, pemerkosaan, dan persentase populasi yang tinggal di daerah perkotaan di masing-masing dari 50 negara bagian pada tahun 1973.
# Memuat data "USArrests" dari R
data("USArrests")
# Menampilkan data
head(USArrests)
## 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
# Mengaplikasikan fungsi hclust() untuk clustering
result <- hclust(dist(USArrests))
# Menampilkan dendrogram hasil clustering
plot(result)
df <- USArrests
Kita dapat melihat 6 pengamatan pertama dengan menggunakan 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
Kemudian kami membersihkan data dengan menghapus nilai yang hilang menggunakan fungsi na.omit()
df <- na.omit(df)
Kemudian kita menggunakan fungsi scale() untuk “memstandarkan” setiap pengukuran. Itu alasan mengapa kami menerapkan fungsi ini adalah karena beberapa pengukuran jauh lebih besar daripada yang lain. Misalnya, satu siswa mengikuti tes ACT dan SAT. SAT punya skor maksimal 1600 dan ACT memiliki skor maksimal 36. Jika siswa ini ingin mengetahui tes yang dia lakukan lebih baik, Anda tidak bisa hanya membandingkan skor ini. Jika kita menghitung seberapa jauh skor siswa untuk SAT atau ACT adalah dari rata-rata, maka kita dapat membandingkan nilai siswa pada ACT dan DUDUK. Fungsi scale() menghitung seberapa jauh lokasi setiap observasi rata-rata.
df <- scale(df)
Kemudian kami menggunakan jarak “Euclidean” sebagai ukuran seberapa jauh jaraknya dua pengamatan berasal dari satu sama lain. Di sini jarak “Euclidean” adalah a akar kuadrat dari hasil kali dalam dua vektor di R 4 untuk “USArrests” data (kita akan membahas hasil kali dalam di Bab 5). Kami menyimpan jarak antara setiap pasangan pengamatan dalam data “USArrests” dengan 50 × 50 matriks menggunakan fungsi dist():
d <- dist(df, method = "euclidean")
Sekarang kita siap menerapkan fungsi hclust() untuk pengelompokan menggunakan metode “pengelompokan hierarkis”:
hc <- hclust(d)
Kita dapat melihat bagaimana metode ini mengelompokkan data bersama-sama dengan sebuah “dendrogram”. Ada beberapa cara untuk melihat berapa banyak grup (cluster) yang ada di dalam data mengatur. Di sini dari “dendrogram” kita tahu pada dasarnya ada empat kelompok kumpulan data. Jadi, kami membuat empat kelompok bersama:
sub_grp <- cutree(hc, k = 4)
Kemudian gunakan paket factoextra untuk memplot cluster
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
Sekarang kita plot hasilnya. Kami gunakan fungsi fviz cluster()
fviz_cluster(list(data = df, cluster = sub_grp))