Extraire un paramètre d’un Random Forest
Vous allez maintenant adapter le travail effectué auparavant sur le modèle de régression logistique à un modèle de Random Forest. Un paramètre de ce modèle est, pour un arbre donné, la façon dont il décide de se scinder à chaque niveau.
Cette analyse est moins exploitable que les coefficients d’une régression logistique, car vous n’explorerez probablement jamais toutes les coupures de tous les arbres d’un Random Forest. Cependant, c’est un excellent exercice pour jeter un œil « sous le capot » et comprendre ce que fait le modèle.
Dans cet exercice, nous allons extraire un seul arbre de notre modèle de Random Forest, le visualiser et extraire par programme l’une de ses coupures.
Vous avez à disposition :
- Un objet modèle de Random Forest,
rf_clf - Une image du sommet de l’arbre de décision choisi,
tree_viz_image - Le DataFrame
X_trainet la listeoriginal_variables
Cet exercice fait partie du cours
Optimisation des hyperparamètres en Python
Instructions
- Extrayez le 7e arbre (index 6) du modèle de Random Forest.
- Visualisez cet arbre (
tree_viz_image) pour voir les décisions de coupure. - Extrayez la variable et le seuil de la coupure au sommet.
- Affichez ensemble la variable et le seuil.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Extract the 7th (index 6) tree from the random forest
chosen_tree = rf_clf.estimators_[____]
# Visualize the graph using the provided image
imgplot = plt.imshow(____)
plt.show()
# Extract the parameters and level of the top (index 0) node
split_column = chosen_tree.tree_.feature[____]
split_column_name = X_train.columns[split_column]
split_value = chosen_tree.tree_.threshold[____]
# Print out the feature and level
print("This node split on feature {}, at a value of {}".format(split_column_name, ____))