ComenzarEmpieza gratis

Juntándolo todo

Acabas de unirte a una startup de detección de arritmias y quieres entrenar un modelo con el conjunto de datos de arritmias arrh. Has observado que los random forests suelen ganar bastantes competiciones de Kaggle, así que quieres probarlos con una profundidad máxima de 2, 5 o 10 usando una búsqueda en cuadrícula. También ves que la dimensión del conjunto de datos es bastante alta, por lo que te interesa considerar el efecto de un método de selección de características.

Para asegurarte de no sobreajustar por error, ya has dividido tus datos. Usarás X_train y y_train para la búsqueda en cuadrícula, y X_test y y_test para decidir si la selección de características ayuda. Los cuatro pliegues del conjunto de datos están precargados en tu entorno. También tienes acceso a GridSearchCV(), train_test_split(), SelectKBest(), chi2() y RandomForestClassifier como rfc.

Este ejercicio forma parte del curso

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

Ver curso

Instrucciones del ejercicio

  • Usa una búsqueda en cuadrícula para probar una profundidad máxima de 2, 5 y 10 para RandomForestClassifier y guarda la mejor configuración de parámetros.
  • Ahora vuelve a ajustar el estimador usando el mejor número de estimadores deducido arriba.
  • Aplica el selector de características SelectKBest con la función de puntuación chi2 y vuelve a ajustar el clasificador.

Ejercicio interactivo práctico

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

# Find the best value for max_depth among values 2, 5 and 10
grid_search = GridSearchCV(
  ____(random_state=1), param_grid=____)
best_value = grid_search.____(
  ____, ____).best_params_['max_depth']

# Using the best value from above, fit a random forest
clf = rfc(
  random_state=1, ____=best_value).____(X_train, y_train)

# Apply SelectKBest with chi2 and pick top 100 features
vt = SelectKBest(____, k=____).____(X_train, y_train)

# Create a new dataset only containing the selected features
X_train_reduced = ____.transform(____)
Editar y ejecutar código