El contrato de los estimadores
Todo modelo de scikit-learn sigue un contrato, y ese contrato es la razón de que los modelos se puedan intercambiar, encadenar y ajustar. __init__ solo guarda los parámetros recibidos, con los mismos nombres, sin comprobaciones ni cálculos: así funcionan get_params, set_params y clone. fit(X, y) aprende de los datos, guarda lo aprendido en atributos que terminan en guion bajo (coef_, intercept_, n_features_in_) y devuelve self, para poder encadenar llamadas. predict(X) llama primero a check_is_fitted, que lanza NotFittedError si fit no se ejecutó, luego valida X con check_array y aplica lo aprendido. Herede de BaseEstimator para la gestión de parámetros y de RegressorMixin para obtener score gratis (ponga el mixin primero).
El modelo de este laboratorio es la regresión ridge. Con datos centrados resuelve (XᵀX+αI) w=Xᵀy, y el término independiente es ȳ-x̄·w. Un α mayor encoge los coeficientes hacia cero, buen hábito cuando las variables son rendimientos rezagados ruidosos. Como su clase cumple el contrato, make_pipeline(StandardScaler(), ShrinkageRegressor()), cross_val_score y GridSearchCV la aceptan, y clone(model) da una copia nueva sin ajustar. Esto último importa en una evaluación walk-forward: ajuste un clon en cada ventana de entrenamiento, nunca el propio modelo, o la información de un pliegue se filtra al siguiente. La puntuación de un pronóstico de rendimiento es la correlación de rangos de Spearman entre pronósticos y resultados en las filas de prueba, el coeficiente de información.
- Parámetros de entrada, atributos aprendidos de salida:
__init__guarda,fitaprende en nombres que terminan en guion bajo y devuelveself. - Comprobar antes de predecir:
check_is_fittedycheck_arraydan los errores estándar que esperan los pipelines y los usuarios. - Ajustar un clon: en un bucle walk-forward,
clone(model).fit(...)mantiene independientes los pliegues.
Lab: qué se califica
- Variables rezagadas10 pts
- Ridge con las ecuaciones normales15 pts
- El constructor10 pts
- Ajustar y predecir20 pts
- Funcionar con Pipeline y GridSearchCV10 pts
- Una correlación de rangos walk-forward15 pts
- ¿El pasado de SPY predice su día siguiente?20 pts