Le contrat des estimateurs
Tout modèle scikit-learn suit un contrat, et ce contrat permet d'échanger, d'enchaîner et de régler les modèles. __init__ se contente de stocker les paramètres reçus, sous les mêmes noms, sans vérification ni calcul : c'est ce qui fait fonctionner get_params, set_params et clone. fit(X, y) apprend des données, stocke ce qu'il a appris dans des attributs qui finissent par un tiret bas (coef_, intercept_, n_features_in_) et renvoie self, pour pouvoir chaîner les appels. predict(X) appelle d'abord check_is_fitted, qui lève NotFittedError si fit n'a pas été exécuté, puis valide X avec check_array et applique ce qui a été appris. Héritez de BaseEstimator pour la gestion des paramètres et de RegressorMixin pour une méthode score gratuite (mettez le mixin en premier).
Le modèle de ce lab est la régression ridge. Avec des données centrées, elle résout (XᵀX+αI) w=Xᵀy, et l'ordonnée à l'origine vaut ȳ-x̄·w. Un α plus grand ramène les coefficients vers zéro, bonne habitude quand les variables sont des rendements décalés bruités. Comme votre classe respecte le contrat, make_pipeline(StandardScaler(), ShrinkageRegressor()), cross_val_score et GridSearchCV l'acceptent, et clone(model) donne une copie neuve non ajustée. Ce dernier point compte dans une évaluation walk-forward : ajustez un clone sur chaque fenêtre d'entraînement, jamais le modèle lui-même, sinon l'information d'un pli fuit dans le suivant. Le score d'une prévision de rendement est la corrélation de rang de Spearman entre prévisions et résultats sur les lignes de test, le coefficient d'information.
- Paramètres en entrée, attributs appris en sortie :
__init__stocke,fitapprend dans des noms finissant par un tiret bas et renvoieself. - Vérifier avant de prédire :
check_is_fittedetcheck_arraydonnent les erreurs standard qu'attendent les pipelines et les utilisateurs. - Ajuster un clone : dans une boucle walk-forward,
clone(model).fit(...)garde les plis indépendants.
Lab : ce qui est noté
- Variables décalées10 pts
- Ridge par les équations normales15 pts
- Le constructeur10 pts
- Ajuster et prédire20 pts
- Travailler avec Pipeline et GridSearchCV10 pts
- Une corrélation de rang walk-forward15 pts
- Le passé de SPY prédit-il son lendemain ?20 pts