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
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_depthymin_samples_leafa 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=____)