ComenzarEmpieza gratis

Configurar los parámetros de GridSearch

Un hiperparámetro es un parámetro dentro de una función. Por ejemplo, max_depth o min_samples_leaf son hiperparámetros de la función DecisionTreeClassifier(). El ajuste de hiperparámetros es el proceso de probar distintos valores de hiperparámetros para encontrar los óptimos: los que ofrecen las mejores predicciones según tus objetivos. En sklearn, puedes usar GridSearch para probar diferentes combinaciones de hiperparámetros. Aún mejor, puedes usar GridSearchCV() para probar distintas combinaciones y ejecutar validación cruzada sobre ellas en una sola función.

En este ejercicio, vas a preparar los distintos valores que quieres probar para max_depth y min_samples_leaf. Luego los pondrás en un diccionario, porque eso es lo que requiere GridSearchCV():

  • las claves del diccionario serán los nombres de los hiperparámetros
  • los valores del diccionario serán los atributos (los valores de los hiperparámetros) que quieres probar

En lugar de escribir todos los valores manualmente, usarás la función range(), que permite generar valores de forma incremental. Por ejemplo, range(1, 10, 2) generará una lista con valores desde 1 incluido hasta 10 sin incluir, en incrementos de 2. Así, el resultado final será [1, 3, 5, 7, 9].

Este ejercicio forma parte del curso

Analítica de RR. HH.: Predicción de rotación de empleados en Python

Ver curso

Instrucciones del ejercicio

  • Siguiendo el formato del ejemplo anterior, genera valores para la profundidad máxima desde 5 hasta 20 con incrementos de 1
  • Haz lo mismo para el tamaño mínimo de muestra con valores de 50 a 450 con incrementos de 50
  • Crea el diccionario especificando los valores de max_depth y min_samples_leaf a probar, respectivamente, utilizando las variables que acabas de crear

Ejercicio interactivo práctico

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

# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]

# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]

# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)
Editar y ejecutar código