σμ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
  • 日本語
  • 中文
Statistics 学习路线›模块 4 · 验证与过拟合›主题 4.1·~55分钟中级

交叉验证与过拟合

路线进度模块 4/4 · 主题 1/3
4.1 交叉验证与过拟合
—实验得分— / 100总 XP—连续天数—

拟合过去很容易

只要给模型足够的自由度,它就能拟合任何训练数据,连噪声也不放过。这就是过拟合:样本内拟合很漂亮,一遇到新数据就崩溃。欠拟合则相反,是模型太简单,抓不住规律。两者的解药都是用模型没见过的数据来评判它。样本内的 R2R^2R2 在加入预测变量时永远不会下降,因此奖励了过拟合,而调整后的 R2=1−(1−R2)n−1n−p−1R^2=1-(1-R^2)\frac{n-1}{n-p-1}R2=1−(1−R2)n−p−1n−1​ 会惩罚每个额外的预测变量。

CV⁡k=1k∑j=1kErr⁡j\operatorname{CV}_k=\frac{1}{k}\sum_{j=1}^{k}\operatorname{Err}_jCVk​=k1​j=1∑k​Errj​(1)

kkk 折交叉验证把数据分成 kkk 折,用其中 k−1k-1k−1 折训练,在留出的那一折上评分,再对 kkk 个分数取平均。另有一个只在最后动用一次的独立测试集,给出最终诚实的估计;验证折则会被诸如惩罚 λ\lambdaλ 这样的选择消耗掉。对时间序列,打乱顺序是错误的:随机划分会用晚于测试日的数据训练,等于泄露了未来。应改用向前滚动(walk-forward)验证,始终用过去训练、在随后的一段上测试,必要时留出间隔以避免标签重叠。

数折数与惩罚预测变量1000 个观测、5 折时,每折有 200 个,每个模型用 800 个训练、200 个测试。一个 n=50n=50n=50、p=10p=10p=10 个预测变量的回归,R2=0.40R^2=0.40R2=0.40;调整后的值为 1−0.6⋅4939≈0.2461-0.6\cdot\frac{49}{39}\approx0.2461−0.6⋅3949​≈0.246,低得多。向前滚动验证是:用第 1 到 3 年训练、第 4 年测试;用第 1 到 4 年训练、第 5 年测试;依此类推。对样本外分数取平均,比任何样本内拟合都更诚实。
  • 过拟合:训练数据上很好,新数据上很差。欠拟合:两者都差。
  • 交叉验证:用部分折训练、在留出折上评分并取平均;留一个测试集到最后用。
  • 时间序列:绝不打乱;用过去训练,在未来的块上测试(向前滚动)。
泄露悄无声息任何在测试之前使用测试期信息的步骤都是泄露,它会在没有任何报错的情况下抬高结果。用全样本均值对特征做标准化、在划分之前用全部数据挑选特征、把明天的价格当作特征,都属于泄露。每个变换都应只在训练折内拟合,再原样应用到测试折。

实验:评分内容

  • 训练集的大小10 分
  • 为什么不能打乱15 分
  • 向前滚动测试15 分
  • 调整后的 R 方15 分
  • 术语15 分
  • 识别泄露15 分
  • 为什么样本内拟合说明不了什么15 分
0/ 已答 7 题
任务
1数值作答10 分未作答

对 1000 个观测做 5 折交叉验证,每个模型用多少个观测训练?

n=n =n=允许误差:± 0.1%
2选择15 分未作答

为什么随机 k 折交叉验证不适合日收益率数据?

3排列步骤15 分未作答

把向前滚动验证的步骤按顺序排好。

拖动以重新排序;也可聚焦某项,按空格抬起,用方向键移动,再按空格放下。

  1. 1把窗口向前移动一个块
  2. 2在过去的初始窗口上拟合模型
  3. 3重复,然后对样本外分数取平均
  4. 4在它没见过的下一个块上评分
4数值作答15 分未作答

n = 50 个观测、p = 10 个预测变量的回归,R 方 = 0.40。计算调整后的 R 方 1 - (1 - R^2)(n - 1)/(n - p - 1),保留四位小数。

Rˉ2=\bar R^{2} =Rˉ2=允许误差:± 0.001
5配对15 分未作答

把每个术语与其含义配对。

为左侧每一项选择配对项。

过拟合
欠拟合
验证集
测试集
6选择15 分未作答

选出所有泄露测试期信息的步骤。

7用文字解释15 分未作答

请用两句话说明:为什么样本内拟合得好,只是模型在新数据上有效的微弱证据。

数学模式键盘或 LaTeX 输入第 1/7 题 · Ctrl ⏎ 检查

登录后即可运行你的代码。

所有讲解均可免费阅读。创建账户或登录后,即可运行代码、运行测试并提交此实验。

  • 浏览器内 IDE 与 bash 终端,无需安装
  • 即时评分、XP 以及你在学习路线中的位置
创建账户登录
或
使用 GitHub 继续