σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours scikit-learn›Module 3 · Une évaluation honnête›Sujet 3.9·~50 minAvancé

Une recherche qui ne vous trompe pas

Position dans le parcoursModule 3 sur 4 · Sujet 9 sur 9
3.9 Une recherche qui ne vous trompe pas
—Score du lab— / 100XP total—Série—

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 TimeSeriesSplit dans 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
Explorateur · lab-sl-20
▾ lab-sl-20
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sl-20$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sl-20 revient aux fichiers de départ et le terminal est vidé. Votre solution actuelle sera perdue : cette action est irréversible.

Sera réinitialisé
  • main.py → code de départ
  • Historique du terminal et sortie des tests
  • Modifications non soumises
Sera conservé
  • Meilleur score du lab
  • Votre XP et votre série
  • Progression du cours et notes

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub