σμ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 Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • 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 Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
scikit-learn スキル›モジュール 1 · エスティメータの作法›トピック 1.2·~50 分中級

自作のエスティメータを書く

スキル上の位置モジュール 1/4 · トピック 2/5
1.2 自作のエスティメータを書く
—ラボスコア— / 100合計XP—連続日数—

エスティメータの約束事

scikit-learnのモデルはどれもひとつの約束事に従い、だからこそモデルを入れ替え、連結し、調整できます。__init__ は受け取ったパラメータを同じ名前で保存するだけで、検査も計算もしません。これで get_params、set_params、clone が動きます。fit(X, y) はデータから学び、学んだものを末尾がアンダースコアの属性(coef_、intercept_、n_features_in_)に保存して self を返すので、呼び出しをつなげられます。predict(X) はまず check_is_fitted を呼び(fit 未実行なら NotFittedError)、check_array で X を検証してから学んだものを適用します。パラメータ処理のために BaseEstimator を、無料の score メソッドのために RegressorMixin を継承します(ミックスインを先に置く)。

このラボのモデルはリッジ回帰です。中心化したデータで (XᵀX+αI) w=Xᵀy を解き、切片は ȳ-x̄·w です。α が大きいほど係数はゼロに縮みます。ノイズの多いラグ付きリターンを特徴量にするときの良い習慣です。クラスが約束事を守っているので、make_pipeline(StandardScaler(), ShrinkageRegressor())、cross_val_score、GridSearchCV がそのまま使え、clone(model) は未学習の新しいコピーを返します。この最後の点はウォークフォワード評価で重要です。各学習期間ではモデル自身でなくクローンを学習させないと、ある分割の情報が次へ漏れます。リターン予測のスコアは、テスト行での予測と結果のスピアマン順位相関、つまり情報係数です。

  • 入力はパラメータ、出力は学習済み属性:__init__ は保存し、fit は末尾が_の名前に学習結果を入れて self を返す。
  • 予測の前に検査する:check_is_fitted と check_array はパイプラインや利用者が期待する標準のエラーを出す。
  • クローンを学習させる:ウォークフォワードのループでは clone(model).fit(...) が各分割を独立に保つ。

ラボ:採点される内容

  • ラグ付き特徴量10点
  • 正規方程式によるリッジ15点
  • コンストラクタ10点
  • 学習と予測20点
  • PipelineとGridSearchCVでの利用10点
  • ウォークフォワードの順位相関15点
  • SPYの過去は翌日を予測するか20点
エクスプローラー · lab-sl-13
▾ lab-sl-13
▾ data
…
bash · ブラウザ内
learner@quantcraft:~/lab-sl-13$
Pythonは未読み込みPythonLn 1, Col 1Spaces: 4UTF-8

このトピックをリセットしますか?

lab-sl-13 の内容はすべてスターターファイルに戻り、ターミナルも消去されます。現在の解答は失われ、元に戻せません。

リセットされるもの
  • main.py → スターターコード
  • ターミナル履歴とテスト出力
  • 未提出の変更
保持されるもの
  • ラボの最高スコア
  • XPと連続日数
  • 講義の進捗とメモ

コードを実行するにはログインしてください。

レクチャーはすべて無料で読めます。コードの実行、テスト、ラボの提出にはアカウントの作成かログインが必要です。

  • ブラウザ内IDEとbashターミナル。インストール不要
  • 即時採点、XP、スキルでの現在地
アカウントを作成ログイン
または
GitHubで続ける