O contrato dos estimadores
Todo modelo do scikit-learn segue um contrato, e esse contrato é o que permite trocar, encadear e ajustar modelos. __init__ só guarda os parâmetros recebidos, com os mesmos nomes, sem verificações nem cálculos: é isso que faz get_params, set_params e clone funcionarem. fit(X, y) aprende com os dados, guarda o que aprendeu em atributos terminados em sublinhado (coef_, intercept_, n_features_in_) e devolve self, para encadear chamadas. predict(X) primeiro chama check_is_fitted, que lança NotFittedError se fit não rodou, depois valida X com check_array e aplica o que foi aprendido. Herde de BaseEstimator para o tratamento dos parâmetros e de RegressorMixin para ganhar o método score (ponha o mixin primeiro).
O modelo deste laboratório é a regressão ridge. Com dados centrados ela resolve (XᵀX+αI) w=Xᵀy, e o intercepto é ȳ-x̄·w. Um α maior encolhe os coeficientes em direção a zero, bom hábito quando as variáveis são retornos defasados ruidosos. Como sua classe segue o contrato, make_pipeline(StandardScaler(), ShrinkageRegressor()), cross_val_score e GridSearchCV a aceitam, e clone(model) dá uma cópia nova sem ajuste. Esse último ponto importa numa avaliação walk-forward: ajuste um clone em cada janela de treino, nunca o próprio modelo, ou a informação de uma dobra vaza para a seguinte. A nota de uma previsão de retorno é a correlação de postos de Spearman entre previsões e resultados nas linhas de teste, o coeficiente de informação.
- Parâmetros na entrada, atributos aprendidos na saída:
__init__guarda,fitaprende em nomes terminados em sublinhado e devolveself. - Verifique antes de prever:
check_is_fittedecheck_arraydão os erros padrão que pipelines e usuários esperam. - Ajuste um clone: num laço walk-forward,
clone(model).fit(...)mantém as dobras independentes.
Lab: o que é avaliado
- Variáveis defasadas10 pts
- Ridge pelas equações normais15 pts
- O construtor10 pts
- Ajustar e prever20 pts
- Funcionar com Pipeline e GridSearchCV10 pts
- Uma correlação de postos walk-forward15 pts
- O passado do SPY prevê o dia seguinte?20 pts