Powrót do danych hurtowni: „najlepsze" k
Pod koniec rozdziału 2 analizowałeś dane hurtowni customers_spend za pomocą grupowania hierarchicznego. Teraz przeanalizujesz te dane, korzystając z narzędzi grupowania k-średnich omówionych w tym rozdziale.
Pierwszym krokiem będzie wyznaczenie „najlepszej" wartości k przy użyciu średniej szerokości sylwetki.
Krótkie przypomnienie dotyczące danych: zawierają one informacje o wydatkach 45 różnych klientów hurtowni w kategoriach żywności: Mleko, Artykuły spożywcze i Mrożonki. Dane są przechowywane w ramce danych customers_spend. W tym ćwiczeniu możesz założyć, że ponieważ wszystkie dane są tego samego typu (kwoty wydatków), nie trzeba ich skalować.
To ćwiczenie jest częścią kursu
Analiza skupień w R
Instrukcje do ćwiczenia
- Użyj funkcji
map_dbl(), aby uruchomićpam()na danychcustomers_spenddla wartości k od 2 do 10 i wyodrębnić wartość średniej szerokości sylwetki z każdego modelu:model$silinfo$avg.width. Zapisz wynikowy wektor jakosil_width. - Zbuduj nową ramkę danych
sil_dfzawierającą wartości k oraz wektor średnich szerokości sylwetki. - Korzystając z wartości zawartych w
sil_df, narysuj wykres liniowy przedstawiający zależność między k a średnią szerokością sylwetki.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)