1. Apprendre
  2. /
  3. Cours
  4. /
  5. Introduction à Spark avec sparklyr en R

Connected

Exercice

Transformer des variables continues en catégories (2)

Un cas particulier de la transformation précédente consiste à découper une variable continue en intervalles définis par les quantiles de la variable. On utilise souvent cette transformation pour analyser des réponses à des sondages ou des notes d'évaluation. Si vous demandez aux gens de noter quelque chose de une à cinq étoiles, la médiane n'est pas toujours trois étoiles. Dans ce cas, il peut être utile de répartir leurs notes par quantiles. Par exemple, vous pouvez créer cinq groupes quintiles en coupant aux 0e, 20e, 40e, 60e, 80e et 100e centiles.

La façon de base en R consiste à utiliser cut() + quantile(). L'équivalent dans sparklyr utilise la transformation ft_quantile_discretizer(). Elle prend l'argument num_buckets, qui détermine le nombre d'intervalles. Les approches de base R et de sparklyr sont présentées côte à côte. Comme précédemment, right = FALSE et include.lowest sont définis.

survey_response_group <- cut(
  survey_score,
  breaks = quantile(survey_score, c(0, 0.25, 0.5, 0.75, 1)),
  labels = c("hate it", "dislike it", "like it", "love it"),
  right  = FALSE,
  include.lowest = TRUE
)
survey_data %>%
  ft_quantile_discretizer("survey_score", "survey_response_group", num_buckets = 4)

Comme avec ft_bucketizer(), les intervalles produits sont des nombres, à partir de zéro. Si vous souhaitez les utiliser dans R, convertissez-les explicitement en factor.

Instructions

100 XP

Une connexion Spark a été créée pour vous sous le nom spark_conn. Une tibble liée aux métadonnées de pistes stockées dans Spark a été pré‑définie sous le nom track_metadata_tbl. duration_labels est un vecteur de caractères décrivant des durées.

  • Créez une variable appelée familiarity_by_duration à partir de track_metadata_tbl.
    • Sélectionnez les champs duration et artist_familiarity.
    • Utilisez ft_quantile_discretizer() pour créer un nouveau champ, duration_bin, à partir de 5 intervalles par quantile de duration.
    • Rapatriez le résultat avec collect().
    • Convertissez le champ duration_bin en facteur avec les étiquettes duration_labels.
  • Tracez un diagramme en boîtes avec ggplot() de artist_familiarity par duration_bin.
    • Le premier argument de ggplot() est l'argument des données, familiarity_by_duration.
    • Le deuxième argument de ggplot() est l'esthétique, qui prend duration_bin et artist_familiarity enveloppés dans aes().
    • Ajoutez geom_boxplot() pour tracer les boîtes.