Ajuster les hyperparamètres

Machine Learning avec des modèles arborescents en R

Sandro Raabe

Data Scientist

Hyperparamètres

  • Influencent la forme et la complexité des arbres
  • Paramètres du modèle qui contrôlent la complexité et sont fixés avant l'entraînement

Hyperparamètres des arbres de décision parsnip :

  • min_n : nombre minimal d'échantillons pour scinder un nœud
  • tree_depth : profondeur maximale autorisée de l'arbre
  • cost_complexity : pénalité liée à la complexité de l'arbre
Machine Learning avec des modèles arborescents en R

Pourquoi ajuster ?

Valeurs par défaut définies par parsnip :

decision_tree(min_n = 20, tree_depth = 30, cost_complexity = 0.01)
  • Souvent efficaces, mais pas optimales pour tous les jeux de données

 

L'objectif de l'ajustement est de trouver l'ensemble optimal de valeurs d'hyperparamètres.

Machine Learning avec des modèles arborescents en R

Ajuster avec tidymodels à l'aide du paquet tune

une grille d'ajustement vide

Machine Learning avec des modèles arborescents en R

Ajuster avec tidymodels

spécification factice

Machine Learning avec des modèles arborescents en R

Ajuster avec tidymodels

une grille d'ajustement avec un modèle entraîné par point de grille

Machine Learning avec des modèles arborescents en R

Ajuster avec tidymodels

le meilleur point de grille est retenu

Machine Learning avec des modèles arborescents en R

Étape 1 : Créer des espaces réservés : tune()

spec_untuned <- decision_tree(

min_n = tune(), tree_depth = tune()
) %>% set_engine("rpart") %>% set_mode("classification")
Decision Tree Model Specification 
(classification)


Main Arguments: tree_depth = tune() min_n = tune()
  • tune() marque les paramètres à ajuster
  • Le reste de la spécification ne change pas
Machine Learning avec des modèles arborescents en R

Étape 2 : Créer une grille d'ajustement : grid_regular()

tree_grid <- grid_regular(

parameters(spec_untuned),
levels = 3 )
# A tibble: 9 x 2
  min_n tree_depth
1     2          1
2    21          1
3    40          1
4     2          8
5    21          8
6    40          8
7     2         15
8    21         15
9    40         15
  • Fonction utilitaire parameters()
  • levels : nombre de points de grille par hyperparamètre
Machine Learning avec des modèles arborescents en R

Étape 3 : Ajuster la grille : tune_grid()

  • Entraîne un modèle pour chaque point de grille
  • Évalue chaque modèle hors échantillon (VC)

 

Utilisation et arguments :

  • Spécification d'arbre non ajustée
  • Formule du modèle
  • Plis de VC
  • Grille d'ajustement
  • Liste d'indicateurs dans metric_set()
tune_results <- tune_grid(

spec_untuned,
outcome ~ .,
resamples = my_folds,
grid = tree_grid,
metrics = metric_set(accuracy))
Machine Learning avec des modèles arborescents en R

Visualiser les résultats d'ajustement

autoplot(tune_results)

résultats d'ajustement

Machine Learning avec des modèles arborescents en R

Étape 4 : Utiliser les meilleurs paramètres : finalize_model()

# Sélectionner les meilleurs paramètres
final_params <- select_best(tune_results)

final_params
# A tibble: 1 x 3
    min_n    tree_depth    .config
    <int>         <int>      <chr>
1      2              8     Model4
# Les intégrer à la spécification
best_spec <- finalize_model(spec_untuned, 
                            final_params)

best_spec
Decision Tree Model Specification 
                 (classification)

Main Arguments:
  tree_depth = 8
  min_n = 2

Computational engine: rpart
Machine Learning avec des modèles arborescents en R

Passons à l'ajustement !

Machine Learning avec des modèles arborescents en R

Preparing Video For Download...