ComenzarEmpieza gratis

Identifica la profundidad óptima del árbol

Ahora vas a ajustar el parámetro max_depth del árbol de decisión para encontrar el que reduce el sobreajuste y mantiene unas buenas métricas de rendimiento del modelo. Ejecutarás un bucle for con varios valores de max_depth, ajustarás un árbol de decisión para cada uno y luego calcularás las métricas de rendimiento.

La lista depth_list con los candidatos del parámetro ya está cargada. El array depth_tuning se ha creado con 2 columnas: la primera contiene los candidatos de profundidad y la segunda es un marcador de posición para el recall. Además, las variables de características y objetivo se han cargado como train_X, train_Y para los datos de entrenamiento y test_X, test_Y para los datos de test. Las librerías numpy y pandas están cargadas como np y pd, respectivamente.

Este ejercicio forma parte del curso

Machine Learning para marketing en Python

Ver curso

Instrucciones del ejercicio

  • Ejecuta un bucle for sobre el rango de 0 hasta la longitud de la lista depth_list.
  • Para cada candidato de profundidad, inicializa y ajusta un clasificador de árbol de decisión y predice el churn en los datos de test.
  • Para cada candidato de profundidad, calcula el recall usando la función recall_score() y guárdalo en la segunda columna de depth_tuning.
  • Crea un DataFrame de pandas a partir de depth_tuning con los nombres de columnas adecuados.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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=___))
Editar y ejecutar código