σμ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.5·~1 hAvancé

Un découpeur avec purge et embargo

Position dans le parcoursModule 3 sur 4 · Sujet 5 sur 9
3.5 Un découpeur avec purge et embargo
—Score du lab— / 100XP total—Série—

Quand des voisins partagent une étiquette

Supposons que l'étiquette du jour t soit le rendement de la clôture du jour t à celle du jour t+h, avec h=5. Alors les étiquettes du jour t et du jour t+1 partagent quatre de leurs cinq rendements quotidiens : ce sont presque le même nombre. Un K-fold qui met le jour t dans l'entraînement et le jour t+1 dans le test laisse le modèle voir la réponse sur laquelle on le teste. Un modèle flexible, comme les plus proches voisins, paraît alors compétent en se contentant de se souvenir. La fuite a une forme précise : l'étiquette de la ligne i n'est connue qu'à la ligne i+h, donc la ligne i chevauche un bloc de test [t₀,t₁] quand i+h≥t₀ et i≤t₁.

La purge retire toute ligne d'entraînement qui chevauche le bloc de test. L'embargo retire encore quelques lignes juste après le bloc, car des variables lentes comme un rendement sur 20 jours continuent de transporter de l'information vers l'avant. Un découpeur pour scikit-learn est tout objet avec split(X), qui produit des tableaux d'indices (train, test), et get_n_splits() ; on peut alors le passer en cv= à cross_val_score ou GridSearchCV. Sur 5 340 jours de SPY avec quatre variables lentes et une étiquette à cinq jours, un modèle de plus proches voisins a un R carré de 0,039 avec des plis mélangés et de -0,36 avec des plis purgés. Le modèle n'a aucune compétence, et le chiffre mélangé est la fuite qui parle. Un K-fold simple non mélangé est bien meilleur, mais compte encore 120 paires chevauchantes aux quatre frontières ; le découpeur purgé n'en a aucune.

  • Des étiquettes qui se chevauchent mettent des quasi-copies des deux côtés du découpage ; le K-fold mélangé récompense alors la mémoire.
  • Purgez les lignes avec i+h≥t₀ et i≤t₁ ; embargo sur quelques lignes après t₁.
  • Un découpeur n'est que split et get_n_splits : tout objet qui a les deux fonctionne en cv=.

Lab : ce qui est noté

  • Purge et embargo25 pts
  • Le découpeur25 pts
  • L'évaluateur10 pts
  • Compter les chevauchements15 pts
  • L'étude de la fuite25 pts
Explorateur · lab-sl-19
▾ lab-sl-19
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sl-19$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sl-19 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