ComenzarEmpieza gratis

Juntándolo todo

Tienes dos preocupaciones sobre tu pipeline en la startup de detección de arritmias:

  • La app se entrenó con pacientes de todas las edades, pero la usan sobre todo personas aficionadas al fitness, que suelen ser jóvenes. Sospechas que puede haber un cambio de dominio, así que quieres descartar todos los ejemplos de mayores de 50 años.
  • Aún te preocupa el sobreajuste, por lo que quieres ver si hacer que el clasificador random forest sea menos complejo y seleccionar algunas características puede ayudar.

Vas a crear una pipeline con un paso de selección de características SelectKBest() y un RandomForestClassifier, ambos ya importados. También tienes acceso a GridSearchCV(), Pipeline, numpy como np y pickle. Los datos están disponibles como arrh.

Este ejercicio forma parte del curso

Diseño de flujos de trabajo de Machine Learning en Python

Ver curso

Instrucciones del ejercicio

  • Crea una pipeline con SelectKBest() como paso ft y RandomForestClassifier() como paso clf.
  • Crea una rejilla de parámetros para ajustar k en SelectKBest() y max_depth en RandomForestClassifier().
  • Usa GridSearchCV() para optimizar tu pipeline con esa rejilla y los datos que contengan solo a quienes tienen menos de 50 años.
  • Guarda la pipeline optimizada en un pickle para producción.

Ejercicio interactivo práctico

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

# Create a pipeline 
pipe = Pipeline([
  ('ft', ____), ('clf', ____(random_state=2))])

# Create a parameter grid
grid = {'ft__k':[5, 10], '____':[10, 20]}

# Execute grid search CV on a dataset containing under 50s
grid_search = ____(pipe, param_grid=grid)
arrh = arrh.____[____(arrh['age'] < 50)]
____.____(arrh.drop('class', 1), arrh['class'])

# Push the fitted pipeline to production
with ____('pipe.pkl', ____) as file:
    pickle.dump(____, file)
Editar y ejecutar código