CommencerCommencer gratuitement

Gradient boosted trees : modélisation

Le gradient boosting est une technique qui améliore les performances d’autres modèles. L’idée est d’entraîner un modèle « faible » mais rapide à calculer. Ensuite, vous remplacez les valeurs de réponse par les résidus de ce modèle et ajustez un nouveau modèle. En « additionnant » le modèle de prédiction de la réponse initiale et le nouveau modèle de prédiction des résidus, vous obtenez un modèle plus précis. Vous pouvez répéter ce processus autant de fois que nécessaire : à chaque itération, un nouveau modèle prédit les résidus des modèles précédents, et vous ajoutez les résultats. À chaque itération, le modèle devient de plus en plus performant.

Pour un exemple concret, sparklyr utilise des gradient boosted trees, c’est‑à‑dire du gradient boosting avec des arbres de décision comme modèles faibles mais rapides à calculer. Ils s’appliquent aussi bien aux problèmes de classification (variable réponse catégorielle) qu’aux problèmes de régression (variable réponse continue). Dans le cas de la régression, comme ici, la mesure de la qualité d’ajustement d’un point est le résidu.

Les arbres de décision sont présentés plus en détail dans les cours Supervised Learning in R: Classification et Supervised Learning in R: Regression. Ce dernier aborde également le gradient boosting.

Pour exécuter un modèle de gradient boosted trees dans sparklyr, appelez ml_gradient_boosted_trees(). L’utilisation de cette fonction a été abordée dans le premier exercice de ce chapitre.

Cet exercice fait partie du cours

Introduction à Spark avec sparklyr en R

Afficher le cours

Instructions

Une connexion Spark a été créée pour vous sous le nom spark_conn. Une tibble associée aux métadonnées de pistes et aux données de timbre combinées et filtrées, stockées dans Spark, a été prédéfinie sous le nom track_data_to_model_tbl.

  • Récupérez les colonnes contenant la chaîne "timbre" à utiliser comme variables explicatives.
    • Utilisez colnames() pour obtenir les noms de colonnes de track_data_to_model_tbl. Remarque : names() ne donnera pas le résultat souhaité.
    • Utilisez str_subset() pour filtrer les colonnes.
    • L’argument pattern de cette fonction doit être fixed("timbre").
    • Assignez le résultat à feature_colnames.
  • Créez la formula du modèle à l’aide de reformulate().
    • L’argument termlabels (entrées de la formule) doit être feature_colnames.
    • L’argument response (sortie de la formule) doit être "year".
    • Assignez le résultat à year_formula.
    • Utiliser reformulate() de cette manière combine toutes les variables de feature_colnames avec un signe + pour former le membre de droite de la formula. On obtient ainsi une formule year ~ timbre1 + timbre2 + ... + timbre12, qui définit la relation entre les variables à inclure dans le modèle.
  • Exécutez le modèle de gradient boosting.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# track_data_to_model_tbl has been pre-defined
track_data_to_model_tbl

feature_colnames <- track_data_to_model_tbl %>%
  # Get the column names
  ___ %>%
  # Limit to the timbre columns
  ___(___(___))

feature_colnames

# Create the formula for the model
year_formula <- ___

gradient_boosted_trees_model <- track_data_to_model_tbl %>%
  # Run the gradient boosted trees model
  ___
Modifier et exécuter le code