Le meilleur parmi beaucoup est surtout de la chance
GridSearchCV essaie chaque réglage d'une grille, le note par validation croisée et garde le meilleur. Pour des données financières, les plis doivent avancer dans le temps : TimeSeriesSplit(5) entraîne sur le passé et valide sur le bloc suivant, cinq fois. Le score peut être l'AUC (scoring='roc_auc'). Dans un pipeline, un réglage s'adresse par le nom de l'étape, deux tirets bas et le paramètre : 'logit__C'. Après la recherche, best_params_ contient le gagnant, cv_results_['mean_test_score'] le score de chaque point de la grille, et avec refit=True par défaut la recherche prédit elle-même avec le meilleur modèle réajusté sur toutes les données reçues. Avec peu de réglages et un score lisse, le meilleur score de validation est une légère surestimation. Sur nos 60 colonnes de rendements, la grille de C donne des AUC de 0,512, 0,500, 0,504 : le réglage ne change rien, parce qu'il n'y a rien à trouver.
Le danger croît avec le nombre de candidats. Tirez n modèles de compétence réelle nulle ; leurs scores de validation se dispersent autour de la moyenne avec un écart σ, et le meilleur se situe au-dessus de la moyenne d'environ σ((1-γ)Φ⁻¹(1-1/n)+γΦ⁻¹(1-1/ne)), où γ=0,5772 est la constante d'Euler et Φ⁻¹ le quantile normal. Essayez 12 modèles aléatoires utilisant chacun trois des 60 colonnes : le meilleur a une AUC de validation de 0,523, et la chance seule prédit 0,523. Réajustez le gagnant sur les lignes d'entraînement et notez-le sur les 30 % de jours suivants qu'il n'a jamais vus : son AUC est 0,478, sous une pièce. C'est la malédiction du gagnant. Les défenses : un jeu de test final qu'aucune recherche ne touche, moins de candidats, et un regard sobre sur la part du meilleur score que la formule explique déjà.
- Avancez dans le temps : utilisez
TimeSeriesSplitdans la recherche, jamais des plis mélangés, pour des séries temporelles. - Le meilleur de n dépasse la moyenne d'environ σ Φ⁻¹(1-1/n) même quand rien ne marche.
- Gardez un jeu de test final qu'aucune recherche ne touche, et rapportez ce score, pas celui de validation.
Lab : ce qui est noté
- Le pipeline5 pts
- La recherche sur grille20 pts
- Scores de validation10 pts
- Beaucoup de petits modèles20 pts
- Meilleur attendu par chance10 pts
- La malédiction du gagnant15 pts
- L'étude20 pts