LoslegenKostenlos starten

Wholesale-Daten neu betrachtet: „bestes" k

Am Ende von Kapitel 2 hast du die Daten des Großhändlers customers_spend mit hierarchischem Clustering untersucht. Diesmal analysierst du dieselben Daten mit den in diesem Kapitel behandelten k-means-Methoden.

Zuerst bestimmst du den „besten" Wert für k anhand der durchschnittlichen Silhouettenbreite.

Zur Erinnerung an die Daten: Sie enthalten Ausgaben von 45 verschiedenen Kund:innen eines Großhändlers in den Lebensmittelkategorien Milk, Grocery und Frozen. Das steht im Data Frame customers_spend. Für diese Aufgabe kannst du annehmen, dass die Daten alle vom gleichen Typ sind (Ausgaben), daher ist kein Skalieren nötig.

Diese Übung ist Teil des Kurses

<Kurs>Clusteranalyse in R</Kurs>
Kurs ansehen

Übungsanweisungen

  • Verwende map_dbl(), um pam() auf den customers_spend-Daten für k-Werte von 2 bis 10 auszuführen, und extrahiere aus jedem Modell die durchschnittliche Silhouettenbreite: model$silinfo$avg.width. Speichere den resultierenden Vektor als sil_width.
  • Erstelle einen neuen Data Frame sil_df, der die k-Werte und den Vektor der durchschnittlichen Silhouettenbreiten enthält.
  • Nutze die Werte in sil_df, um ein Liniendiagramm zu zeichnen, das den Zusammenhang zwischen k und durchschnittlicher Silhouettenbreite zeigt.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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)
Code bearbeiten und ausführen