Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj funkcji map_dbl(), aby uruchomić pam() na danych customers_spend dla 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 jako sil_width.
  • Zbuduj nową ramkę danych sil_df zawierają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)
Edytuj i uruchom kod