-
1. El modelo está dentro de Pipeline([("pre", pre), ("modelo", RandomForestClassifier())]). ¿Qué clave debe llevar la rejilla de GridSearchCV para probar varias profundidades?
Dentro de un Pipeline, el hiperparámetro se nombra con el paso, dos guiones bajos y el nombre: modelo__max_depth. Sin el prefijo se lanza ValueError: Invalid parameter.
-
2. Una rejilla prueba n_estimators [100, 300], max_depth [4, 8, None] y min_samples_leaf [1, 5, 20] con validación cruzada de 5 pliegues. ¿Cuántos modelos se entrenan durante la búsqueda, sin contar el reajuste final?
Hay 2 × 3 × 3 = 18 combinaciones y cada una se entrena una vez por pliegue: 18 × 5 = 90 ajustes. Con refit=True se entrena uno más con todo el train.
-
3. GridSearchCV con scoring="roc_auc" reporta best_score_ = 0.9354, y el AUC del mejor modelo en test es 0.9108. ¿Qué cifra se reporta como desempeño del modelo y por qué?
best_score_ es la media de validación cruzada de la combinación ganadora y sirvió para elegirla, así que queda algo optimista. El test, usado una sola vez, es la estimación honesta.
-
4. Un RandomizedSearchCV con n_iter=30 y 5 pliegues entrena 150 modelos y llega a un AUC de validación de 0.9502. Una rejilla de 4 × 4 × 4 × 4 valores sobre los mismos hiperparámetros entrena 1280 y llega a 0.9509. ¿Qué se concluye?
La búsqueda aleatoria prueba un número fijo de combinaciones (n_iter) y aquí llega casi al mismo resultado con una fracción del costo. La rejilla crece multiplicando todas las listas.
-
5. Las entregas se ordenan por la etiqueta tarde y se evalúa con cross_val_score(pipe, X, y, cv=KFold(5)). Los pliegues dan 0.912, 0.910, 0.935, 0.858 y 0.470. ¿Cuál es la causa y la corrección?
KFold sin barajar corta bloques consecutivos: los últimos pliegues tienen proporciones de clase muy distintas a las del entrenamiento. StratifiedKFold con shuffle=True conserva la proporción de tardías en cada pliegue.