Ce module traite des sujets suivants:
- interprétation de forêts aléatoires
- entraînement de forêts aléatoires
- avantages et inconvénients des forêts d'arbres décisionnels
Interpréter les forêts aléatoires
Les forêts d'arbres décisionnels sont plus complexes à interpréter que les arbres de décision. Les forêts d'arbres décisionnels contiennent des arbres de décision entraînés avec un bruit aléatoire. Il est donc plus difficile de juger de la structure de l'arbre de décision. Toutefois, nous pouvons interpréter les modèles de forêt aléatoire de plusieurs manières.
Une approche pour interpréter une forêt aléatoire consiste à entraîner et à interpréter un arbre de décision à l'aide de l'algorithme CART. Étant donné que la forêt aléatoire et le CART sont entraînés avec le même algorithme principal, ils partagent la même vue globale de l'ensemble de données. Cette option fonctionne bien pour les ensembles de données simples et pour comprendre l'interprétation globale du modèle.
Les importances des variables constituent une autre bonne approche d'interprétabilité. Par exemple, le tableau suivant classe l'importance variable des différentes caractéristiques pour un modèle de forêt aléatoire entraîné sur l'ensemble de données de recensement (également appelé adulte).
Tableau 8. Importance variable de 14 fonctionnalités différentes.
Extraction | Score de somme | Diminution moyenne de la précision | de baisse de l'AUC | Profondeur minimale moyenne | Nombre de nœuds | de baisse moyenne des PR-AUC | Num en mode root |
---|---|---|---|---|---|---|---|
relationship | 4 203 592,6 |
0,0045 |
0,0172 |
4,970 |
57040 |
0,0093 |
1095 |
capital_gain | 3363045.1 |
0,0199 |
0,0194 |
2,852 |
56468 |
0,0655 |
457 |
marital_status | 3128996,3 |
0,0018 |
0,0230 |
6,633 |
52391 |
0,0107 |
750 |
âge | 2520658,8 |
0,0065 |
0,0074 |
4,969 |
356784 |
0,0033 |
200 |
éducation | 2015905.4 |
0,0018 |
-0,0080 |
5,266 |
115751 |
-0,0129 |
205 |
occupation | 1939 409,3 |
0,0063 |
-0,0040 |
5,017 |
221935 |
-0,0060 |
62 |
education_num | 1673648,4 |
0,0023 |
-0,0066 |
6,009 |
58303 |
-0,0080 |
197 |
fnlwgt | 1564189 |
-0,0002 |
-0,0038 |
9,969 |
431987 |
-0,0049 |
0 |
hours_per_week | 1333976,3 |
0,0030 |
0,0007 |
6,393 |
206526 |
-0,0031 |
20 |
capital_loss | 866 863,8 |
0,0060 |
0,0020 |
8,076 |
58531 |
0,0118 |
1 |
workclass | 644 208,4 |
0,0025 |
-0,0019 |
9,898 |
132196 |
-0,0023 |
0 |
native_country | 538841,2 |
0,0001 |
-0,0016 |
9,434 |
67211 |
-0,0058 |
0 |
sex | 226049,3 |
0.0002 |
0.0002 |
10,911 |
37754 |
-0,0011 |
13 |
race | 168 180,9 |
-0,0006 |
-0,0004 |
11,571 |
42262 |
-0,0031 |
0 |
Comme vous pouvez le constater, différentes définitions des importances des variables ont des échelles différentes et peuvent entraîner des différences dans le classement des caractéristiques.
Les importances des variables qui proviennent de la structure du modèle (par exemple, la somme, la profondeur moyenne minimale, le nombre de nœuds et le nombre total de racines dans le tableau ci-dessus) sont calculées de la même manière pour les arbres de décision (voir la section "Panier" | Importance variable) et les forêts aléatoires.
L'importance des variables de permutation (par exemple, la baisse moyenne de {accuracy, auc, pr-auc} dans le tableau ci-dessus) est une mesure indépendante du modèle qui peut être calculée sur n'importe quel modèle de machine learning doté d'un ensemble de données de validation. Avec une forêt aléatoire, au lieu d'utiliser un ensemble de données de validation, vous pouvez calculer l'importance des variables de permutation avec l'évaluation initiale.
SHAP (SHapley Additive exPlanations) est une méthode indépendante du modèle qui explique les prédictions individuelles ou l'interprétation par le modèle. (Consultez la page Interpretable Machine Learning de Molnar pour une présentation de l'interprétation agnostique des modèles.) Le calcul des SHAP est particulièrement coûteux, mais peut être considérablement accéléré pour les forêts de décision. Il s'agit donc d'un bon moyen d'interpréter les forêts de décision.
Exemple d'utilisation
Dans la leçon précédente, nous avons entraîné un arbre de décision CART sur un petit ensemble de données en appelant tfdf.keras.CartModel
. Pour entraîner un modèle de forêt aléatoire, il vous suffit de remplacer tfdf.keras.CartModel
par tfdf.keras.RandomForestModel
:
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
Avantages et inconvénients
Cette section résume brièvement les avantages et les inconvénients des forêts d'arbres décisionnels.
Avantages :
- Comme les arbres de décision, les forêts d'arbres décisionnels acceptent des caractéristiques numériques et catégorielles natives, et n'ont souvent pas besoin de prétraiter des caractéristiques.
- Étant donné que les arbres de décision sont indépendants, les forêts aléatoires peuvent être entraînées en parallèle. Par conséquent, vous pouvez entraîner des forêts aléatoires rapidement.
- Les forêts d'arbres décisionnels comportent des paramètres par défaut qui donnent souvent d'excellents résultats. Le réglage de ces paramètres a souvent peu d'effet sur le modèle.
Inconvénients :
- Étant donné que les arbres de décision ne sont pas éliminés, ils peuvent être volumineux. Les modèles de plus de 1 million de nœuds sont courants. La taille (et donc la vitesse d'inférence) de la forêt aléatoire peut parfois poser problème.
- Les forêts d'arbres décisionnels ne peuvent pas apprendre ni réutiliser des représentations internes. Chaque arbre de décision (et chaque branche de chaque arbre de décision) doit réapprendre le modèle de l'ensemble de données. Dans certains ensembles de données, notamment les ensembles de données non tabulaires (par exemple, les images et les textes), les forêts aléatoires sont moins performantes que les autres méthodes.