Identifier la profondeur d’arbre optimale
Vous allez maintenant ajuster le paramètre max_depth de l’arbre de décision pour trouver celui qui réduit le surapprentissage tout en maintenant de bonnes métriques de performance. Vous exécuterez une boucle for sur plusieurs valeurs du paramètre max_depth, ajusterez un arbre de décision pour chacune, puis calculerez les métriques de performance.
La liste appelée depth_list contenant les valeurs candidates a été chargée pour vous. Le tableau depth_tuning a été construit pour vous avec 2 colonnes : la première est remplie avec les profondeurs candidates et la suivante sert d’emplacement pour le score de rappel. De plus, les variables de caractéristiques et la cible ont été chargées sous train_X, train_Y pour l’entraînement, et test_X, test_Y pour le test. Les bibliothèques numpy et pandas sont chargées sous np et pd respectivement.
Cet exercice fait partie du cours
Machine Learning pour le marketing en Python
Instructions
- Exécutez une boucle
forsur l’intervalle allant de 0 à la longueur de la listedepth_list. - Pour chaque profondeur candidate, initialisez et ajustez un classificateur d’arbre de décision, puis prédisez le churn sur les données de test.
- Pour chaque profondeur candidate, calculez le score de rappel à l’aide de la fonction
recall_score()et stockez-le dans la deuxième colonne dedepth_tunning. - Créez un DataFrame
pandasà partir dedepth_tuningavec les noms de colonnes appropriés.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Run a for loop over the range of depth list length
for index in ___(0, len(depth_list)):
# Initialize and fit decision tree with the `max_depth` candidate
mytree = DecisionTreeClassifier(___=depth_list[index])
mytree.fit(___, train_Y)
# Predict churn on the testing data
pred_test_Y = mytree.predict(___)
# Calculate the recall score
depth_tuning[index,1] = ___(test_Y, ___)
# Name the columns and print the array as pandas DataFrame
col_names = ['Max_Depth','Recall']
print(pd.DataFrame(depth_tuning, columns=___))