σμ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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • 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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Roteiro de scikit-learn›Módulo 1 · A forma de trabalhar com estimadores›Tópico 1.2·~50 minIntermediário

Escrever seu próprio estimador

Posição no roteiroMódulo 1 de 4 · Tópico 2 de 5
1.2 Escrever seu próprio estimador
—Nota do lab— / 100XP total—Sequência—

O contrato dos estimadores

Todo modelo do scikit-learn segue um contrato, e esse contrato é o que permite trocar, encadear e ajustar modelos. __init__ só guarda os parâmetros recebidos, com os mesmos nomes, sem verificações nem cálculos: é isso que faz get_params, set_params e clone funcionarem. fit(X, y) aprende com os dados, guarda o que aprendeu em atributos terminados em sublinhado (coef_, intercept_, n_features_in_) e devolve self, para encadear chamadas. predict(X) primeiro chama check_is_fitted, que lança NotFittedError se fit não rodou, depois valida X com check_array e aplica o que foi aprendido. Herde de BaseEstimator para o tratamento dos parâmetros e de RegressorMixin para ganhar o método score (ponha o mixin primeiro).

O modelo deste laboratório é a regressão ridge. Com dados centrados ela resolve (XᵀX+αI) w=Xᵀy, e o intercepto é ȳ-x̄·w. Um α maior encolhe os coeficientes em direção a zero, bom hábito quando as variáveis são retornos defasados ruidosos. Como sua classe segue o contrato, make_pipeline(StandardScaler(), ShrinkageRegressor()), cross_val_score e GridSearchCV a aceitam, e clone(model) dá uma cópia nova sem ajuste. Esse último ponto importa numa avaliação walk-forward: ajuste um clone em cada janela de treino, nunca o próprio modelo, ou a informação de uma dobra vaza para a seguinte. A nota de uma previsão de retorno é a correlação de postos de Spearman entre previsões e resultados nas linhas de teste, o coeficiente de informação.

  • Parâmetros na entrada, atributos aprendidos na saída: __init__ guarda, fit aprende em nomes terminados em sublinhado e devolve self.
  • Verifique antes de prever: check_is_fitted e check_array dão os erros padrão que pipelines e usuários esperam.
  • Ajuste um clone: num laço walk-forward, clone(model).fit(...) mantém as dobras independentes.

Lab: o que é avaliado

  • Variáveis defasadas10 pts
  • Ridge pelas equações normais15 pts
  • O construtor10 pts
  • Ajustar e prever20 pts
  • Funcionar com Pipeline e GridSearchCV10 pts
  • Uma correlação de postos walk-forward15 pts
  • O passado do SPY prevê o dia seguinte?20 pts
Explorador · lab-sl-13
▾ lab-sl-13
▾ data
…
bash · no navegador
learner@quantcraft:~/lab-sl-13$
Python ainda não carregadoPythonLn 1, Col 1Spaces: 4UTF-8

Redefinir este tópico?

Tudo em lab-sl-13 volta aos arquivos iniciais e o terminal é limpo. Sua solução atual será perdida — isso não pode ser desfeito.

Será redefinido
  • main.py → código inicial
  • Histórico do terminal e saída dos testes
  • Alterações não enviadas
Será mantido
  • Melhor nota do lab
  • Seu XP e sua sequência
  • Progresso da aula e anotações

Entre para executar o seu código.

Todas as aulas são gratuitas para ler. Crie uma conta ou entre para executar código, rodar os testes e enviar este lab.

  • IDE no navegador com terminal bash — nada para instalar
  • Correção instantânea, XP e o seu lugar no roteiro
Criar uma contaEntrar
OU
Continuar com o GitHub