Modèles d'arbres aléatoires (Random Forest)

Réduction de dimension en R

Matt Pickard

Owner, Pickard Predictives, LLC

Random Forest

  • Un modèle d'ensemble
    • une approche de « sagesse des foules »
  • Agrège les prédictions de nombreux arbres aléatoires
  • Des arbres aléatoires non corrélés réduisent l'erreur
  • Évite le surapprentissage
  • Précis
  • Effectue la sélection d'attributs

Schéma d'un modèle d'ensemble composé de plusieurs arbres de décision dont les votes sont combinés en un vote final.

Réduction de dimension en R

Random Forest

Ce schéma illustre la création de sous-arbres à partir de sous-ensembles d'attributs distincts.

Réduction de dimension en R

Entraîner un Random Forest

library(tidymodels)

rf <- rand_forest(mode = "classification", trees = 200) %>% set_engine("ranger", importance = "impurity")
rf_fit <- rf %>% fit(credit_score ~ ., data = train)
predict_df <- test %>% bind_cols(predict = predict(rf_fit, test))
Réduction de dimension en R

Évaluer le modèle

f_meas(predict_df, credit_score, .pred_class)
0.6895
Réduction de dimension en R

Importance des variables

library(vip)

rf_fit %>% vip()

Diagramme à barres de l'importance des variables.

Réduction de dimension en R

Masque d'attributs

top_features <- rf_fit %>% 
  vi(rank = TRUE) %>% 
  filter(Importance <= 10) %>% 
  pull(Variable)

top_features
 [1] "outstanding_debt"        "interest_rate"          
 [3] "delay_from_due_date"     "changed_credit_limit"   
 [5] "credit_history_months"   "num_credit_card"        
 [7] "monthly_balance"         "num_of_delayed_payment" 
 [9] "annual_income"           "amount_invested_monthly"
Réduction de dimension en R

Réduire les données

train_reduced <- train[top_features]
test_reduced <- test[top_features]
Réduction de dimension en R

Performance

rf_fit <- rf %>% 
  fit(credit_score ~ ., data = train_reduced) 

predict_reduced_df <- test_reduced %>% bind_cols(predict = predict(rf_fit, test_reduced))
f_meas(predict_reduced_df, credit_score, .pred_class)
0.6738 

F-mesure du modèle non réduit :

0.6895 
Réduction de dimension en R

Passons à la pratique !

Réduction de dimension en R

Preparing Video For Download...