- One-Class SVM 异常检测:用高维边界圈出『不正常』的交易日
高斯类方法(马氏距离)默认『正常』只有一个中心,偏离中心越远越异常。但真实市场的正常状态往往是多峰的——平静区制和承压区制是两团各自正常的云。麻烦就藏在两团之间的『山谷』:那些既不像平静、也不像承压的交易日,恰恰是最危险的,而马氏距离会把山谷判成中心(AUC 仅 0.080,方向都反了)。One-Class SVM 用 RBF 核学一条非凸的支撑边界,把两团正常各自圈住、山谷留在外面:合成实验 1000 个正常日(两区制)+ 30 个山谷异常日,OC-SVM AUC 0.961、top-30 命中 33%,而马氏距离几乎为零。纯 numpy 实现带盒约束单纯形投影的对偶求解器,附 ν / γ 双参数敏感性曲线与五类真实陷阱(中阶)。
14 min Chinese - 置换不变集合建模:用 DeepSets 处理无序资产集合
组合层面的建模有个被普遍忽视的结构问题:一篮子资产是『集合』不是『序列』——把 8 只股票的特征按任意顺序摊平喂给 MLP,同一个组合换个排列顺序,模型输出就变。DeepSets(Zaheer et al., NeurIPS 2017)给出通用解:先对每只资产独立编码 φ(x_i),再做对称池化(sum/mean),最后 ρ 读出——数学上可表达一切置换不变函数。本文用纯 numpy 从零实现 DeepSets(含手写反向传播),在组合尾部风险聚合任务上诚实实测:DeepSets R²=0.90 优于摊平 MLP 的 0.79 与手工聚合特征的 0.78,置换后输出偏移 1.8e-15(数值零)而 MLP 偏移达目标标准差的 39%;但变集合大小泛化诚实翻车——训练只见 K=8,测试 K=12 时 sum-pooling R² 崩到 -6.2。并拆穿池化随便选/摊平加增广就行/万能逼近=实际可学/变 K 免费泛化/组合建模必用集合网络五类真实陷阱(中阶)。
17 min Chinese - 量化开发者的 Python 技术栈:从数据处理到机器学习的完整工具链
量化开发者的 Python 技术栈 - halo的技术博客
11 min Chinese - 分位数 RNN 风险预测:用分位损失给出收益区间
点预测答不出「明天最坏跌多少」。分位数 RNN(QRNN)把 RNN 的隐状态接 5 个输出头,用 pinball 损失同时学 τ=0.05/0.25/0.5/0.75/0.95 五条条件分位数——隐状态自动记住波动聚集,区间随市场松紧收放。纯 numpy 从零实现 Elman RNN + 截断 BPTT + 分位损失(手推 pinball 次梯度),在 GARCH(1,1)+t(5) 合成收益上样本外 1000 步实测:QRNN pinball=0.2720 逼近 Oracle(真实 σ+t 分位)的 0.2694,90% 区间覆盖 88.5%,区间宽度与真实波动相关 0.861——碾压滚动历史分位的 0.137;但诚实告败:EWMA-高斯(RiskMetrics,2 个参数)pinball=0.2717 与 QRNN 打平,因为数据生成过程恰好是它的主场。真实翻车实测:独立训练 5 个分位数模型 → 1.9% 时间步分位数交叉(q̂₀.₀₅ > q̂₀.₂₅),联合训练+单调重排才干净;高波动 regime 覆盖率掉到 86.8%。拆穿区间=分布/覆盖率达标=校准/深度必胜EWMA/交叉不重要/合成赢=实盘赢五类陷阱(中阶)。
14 min Chinese - 稳健协方差 MCD 估计:用最小协方差行列式抗住极端值污染
协方差矩阵是组合优化、风险模型、配对交易的地基,但样本协方差有个致命弱点——单点崩溃:只要几个极端值,整个相关结构就被拖歪。合成实验(真实相关 0.7,10% 样本被反向污染):经典相关系数直接崩到 −0.068(连符号都错了),MCD 稳健估计还原到 0.611。距离-距离图上 MCD 把 40 个污染点里的 27 个甩到右上方(FP 仅 1),经典马氏距离只抓到 11 个。最扎心的是组合权重:真实最小方差权重是 (1.04, −0.04),经典协方差给出 (0.62, 0.38)——把该做空的资产配成了 38% 多头,MCD 给出 (0.95, 0.05) 基本还原。核心机制:在所有样本子集里找行列式最小(最紧致)的那 h 个点估协方差,极端值天然行列式大、被排除在外。附一致性校正因子、C-step 迭代、以及『稳健≠无脑抗噪,h 选太大照样被污染拉偏』的反面教材(中高阶)。
17 min Chinese - 得分匹配生成金融序列:用去噪分数匹配合成行情
生成式模型要学分布 p(x) 却卡在归一化常数 Z 上。得分匹配(Hyvärinen 2005)绕开 Z——只学分数 s(x)=∇log p(x),它与 Z 无关。去噪分数匹配 DSM(Vincent 2011)更妙:给数据加噪 x̃=x+σε,让网络学预测 (x−x̃)/σ²,等价于「从噪声指回干净数据的方向」;采样用 Langevin 动力学沿分数场爬向高密度区。这正是当今扩散模型(Diffusion)的数学地基。纯 numpy 从零实现 DSM 闭式最优解(Parzen/Tweedie 去噪器)+ Langevin 采样,在「平静态+危机态」混合的重尾金融收益上实测:生成样本还原资产相关 ρ=0.49(真实 0.54)、下尾联动 P(B跌|A跌)=0.45(真实 0.47),重尾与左偏形状 QQ 图基本对齐;但诚实翻车——Langevin 步长 δ 太大方差爆炸(δ=0.2 时 std 误差 9.7)、太小混合慢覆盖不足,且低密度区分数估计误差随距离线性上升(斜率 7.1),采样进不去稀有危机区。拆穿分数匹配免归一化就免费/单尺度够用/Langevin 随便调/生成即真实/直接造行情五类陷阱(中阶)。
12 min Chinese - Set Transformer 金融表征:用诱导点注意力聚合多资产
组合是集合不是序列,但 DeepSets 的「逐资产编码+对称池化」有个盲区:池化前每个资产互相看不见,成对交互(拥挤度、相似持仓共振)只能靠编码器隐式凑。Set Transformer(ICML 2019)把交互焊进结构:SAB 让集合内元素两两做注意力,PMA 用可学习种子向量做注意力池化,ISAB 用 m 个诱导点把 O(K²) 注意力砍成 O(K·m)。纯 numpy 从零实现 SAB+PMA(手写 einsum 反向传播,梯度校验 1e-9 级),在组合拥挤度聚合任务上实测:SetTransformer R²=0.843 > DeepSets-mean 0.831 ≈ 统计聚合+Ridge 0.830——成对交互任务上有真实但温和的优势;注意力矩阵与真实相似度结构吻合,置换偏移 1.4e-15;ISAB 实测 K=2048 时提速 55 倍。但诚实翻车:n=300 小样本下 SetTransformer 过拟合(train 0.92 / test 0.53),被 DeepSets(0.80)反杀——注意力参数多,先吃数据。拆穿注意力必胜/池化都一样/诱导点无损/交互自动学会/直接上实盘五类陷阱(中阶)。
14 min Chinese - 平滑转移自回归 STAR:用连续过渡函数给 regime 加一条软边界
TAR 的硬门限意味着 y 从 −0.0001 变到 +0.0001 时模型系数瞬间跳变——市场哪有这么听话的开关。STAR 用逻辑过渡函数 G(γ,c) 把两套 AR 系数连续混合:γ 大是硬切换(退化成 TAR),γ 小是渐变,让数据自己决定边界的软硬。纯 numpy 实现 LSTAR 网格估计(γ×c 双重网格+内层 OLS):合成 LSTAR 数据上估出 γ̂=2.5(软边界),RSS 比线性 AR 低 4.4%,比硬 TAR 再低 0.015%。真正的红利在仓位端:G 函数天然输出 0~1 连续状态权重,软仓位择时样本外 Sharpe 4.95 vs 硬 0/1 仓位 4.19,最大回撤 −5.2% vs −10.0%,平均仓位仅 53%。诚实翻车:γ 与 c 联合估计病态(γ 大时似然面平坦),本实验训练集就把 γ=2.5 估成了 6;γ 不可识别时 Luukkonen LM 检验才是正解;软仓位的换手成本被本文忽略。拆穿 STAR 一定优于 TAR/γ 可以精确估计/软边界=模糊无用等陷阱(中阶)。
11 min Chinese
返回
博客
第 57 页 · 显示 8 / 1446 篇文章
按年份查看 →