Meninjau kembali data grosir: k "Terbaik"
Di akhir Bab 2 Anda telah mengeksplorasi data distributor grosir customers_spend menggunakan hierarchical clustering. Kali ini Anda akan menganalisis data tersebut menggunakan alat k-means clustering yang dibahas dalam bab ini.
Langkah pertama adalah menentukan nilai k "terbaik" menggunakan average silhouette width.
Pengingat tentang datanya: data ini memuat catatan jumlah pengeluaran oleh 45 klien berbeda dari sebuah distributor grosir untuk kategori makanan Milk, Grocery, dan Frozen. Data ini disimpan dalam data frame customers_spend. Untuk latihan ini Anda dapat berasumsi bahwa karena semua data bertipe sama (jumlah pengeluaran), Anda tidak perlu melakukan skala.
Latihan ini adalah bagian dari kursus
Analisis Klaster di R
Petunjuk latihan
- Gunakan
map_dbl()untuk menjalankanpam()dengan datacustomers_spenduntuk nilai k dari 2 hingga 10 dan ekstrak nilai average silhouette width dari setiap model:model$silinfo$avg.width. Simpan vektor hasilnya sebagaisil_width. - Bangun data frame baru
sil_dfyang memuat nilai k dan vektor average silhouette width. - Gunakan nilai dalam
sil_dfuntuk membuat plot garis yang menunjukkan hubungan antara k dan average silhouette width.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Use map_dbl to run many models with varying value of k
sil_width <- map_dbl(2:10, function(k){
model <- pam(x = ___, k = ___)
model$silinfo$avg.width
})
# Generate a data frame containing both k and sil_width
sil_df <- data.frame(
k = ___,
sil_width = ___
)
# Plot the relationship between k and sil_width
ggplot(___, aes(x = ___, y = ___)) +
geom_line() +
scale_x_continuous(breaks = 2:10)