CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Exécutez une boucle for sur l’intervalle allant de 0 à la longueur de la liste depth_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 de depth_tunning.
  • Créez un DataFrame pandas à partir de depth_tuning avec 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=___))
Modifier et exécuter le code