σμ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 AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • 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 AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
scikit-learn-Skill›Modul 3 · Ehrliche Bewertung›Thema 3.9·~50 Min.Fortgeschritten

Eine Suche, die Sie nicht täuscht

Position in der SkillModul 3 von 4 · Thema 9 von 9
3.9 Eine Suche, die Sie nicht täuscht
—Lab-Punkte— / 100XP gesamt—Serie—

Der Beste aus vielen ist meist Glück

GridSearchCV probiert jede Einstellung eines Gitters, bewertet sie per Kreuzvalidierung und behält die beste. Bei Finanzdaten müssen die Folds zeitlich vorwärtsgehen: TimeSeriesSplit(5) trainiert auf der Vergangenheit und validiert auf dem folgenden Block, fünfmal. Der Score kann die AUC sein (scoring='roc_auc'). In einer Pipeline wird eine Einstellung über Schrittname, zwei Unterstriche und Parameter angesprochen: 'logit__C'. Nach der Suche enthält best_params_ den Gewinner, cv_results_['mean_test_score'] den Score jedes Gitterpunkts, und mit dem Standard refit=True sagt die Suche selbst mit dem besten, auf allen erhaltenen Daten neu angepassten Modell voraus. Bei wenigen Einstellungen und glattem Score ist der beste Validierungsscore eine milde Überschätzung. Bei unseren 60 Renditespalten liefert das C-Gitter AUCs von 0,512, 0,500, 0,504: Das Tuning ändert nichts, weil nichts zu finden ist.

Die Gefahr wächst mit der Zahl der Kandidaten. Zieht man n Modelle ohne echte Fähigkeit, streuen ihre Validierungsscores mit Abweichung σ um den Mittelwert, und der beste liegt etwa um σ((1-γ)Φ⁻¹(1-1/n)+γΦ⁻¹(1-1/ne)) darüber, wobei γ=0,5772 die Eulersche Konstante und Φ⁻¹ das Normalquantil ist. Probiert man 12 Zufallsmodelle, die je drei der 60 Spalten nutzen, hat das beste eine Validierungs-AUC von 0,523, und Glück allein sagt 0,523 voraus. Passt man den Gewinner auf den Trainingszeilen neu an und bewertet ihn auf den späteren 30 % der Tage, die er nie sah, ist seine AUC 0,478, unter einer Münze. Das ist der Fluch des Gewinners. Die Abwehr: ein finaler Holdout, den keine Suche berührt, weniger Kandidaten und ein nüchterner Blick darauf, wie viel des besten Scores die Formel schon erklärt.

  • Zeitlich vorwärts: In der Suche TimeSeriesSplit nutzen, bei Zeitreihen nie gemischte Folds.
  • Der Beste von n übertrifft den Mittelwert um etwa σ Φ⁻¹(1-1/n), selbst wenn nichts funktioniert.
  • Einen finalen Holdout behalten, den keine Suche berührt, und diesen Score berichten, nicht den der Validierung.

Lab: Was bewertet wird

  • Die Pipeline5 Pkt.
  • Die Gittersuche20 Pkt.
  • Validierungsscores10 Pkt.
  • Viele kleine Modelle20 Pkt.
  • Erwarteter Bester durch Glück10 Pkt.
  • Der Fluch des Gewinners15 Pkt.
  • Die Studie20 Pkt.
Explorer · lab-sl-20
▾ lab-sl-20
▾ data
…
bash · im Browser
learner@quantcraft:~/lab-sl-20$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

Alles in lab-sl-20 wird auf die Startdateien zurückgesetzt und das Terminal geleert. Ihre aktuelle Lösung geht verloren – das lässt sich nicht rückgängig machen.

Wird zurückgesetzt
  • main.py → Startcode
  • Terminal-Verlauf und Testausgabe
  • Nicht eingereichte Änderungen
Bleibt erhalten
  • Beste Lab-Punktzahl
  • Ihre XP und Ihre Serie
  • Vorlesungsfortschritt und Notizen

Melde dich an, um deinen Code auszuführen.

Alle Lektionen kannst du kostenlos lesen. Erstelle ein Konto oder melde dich an, um Code auszuführen, Tests zu starten und dieses Lab abzugeben.

  • IDE im Browser mit Bash-Terminal — nichts zu installieren
  • Sofortige Bewertung, XP und dein Platz auf der Skill
Konto erstellenAnmelden
ODER
Weiter mit GitHub