十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Qlib GRU 轻量时序预测指南:如何从一份配置跑通你的第一个模型

Qlib GRU 轻量时序预测指南:如何从一份配置跑通你的第一个模型 Qlib GRU 轻量时序预测指南如何从一份配置跑通你的第一个模型【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlibQlib 是一个 AI 量化平台它的 GRU 模块可以让你用一份 YAML 配置搭出轻量级时序预测模型。读完这篇你能完成第一次 GRU 训练、看懂回测报告并知道离实盘还差什么。选 GRU 不选 LSTM 的三个理由先看同一份 Alpha158 数据、同一块 NVIDIA T4 上的三组数模型参数量训练耗时回测 ICGRU0.8M12 min0.072LSTM1.4M23 min0.075LightGBM0.5M8 min0.068表里能读出三件事GRU 参数约为 LSTM 的 57%0.8M 对 1.4M训练耗时 12 分钟对 23 分钟。精度差距很小IC 0.072 对 0.075只差 0.003。LightGBM 虽然最快但它把每个交易日当孤立样本没法直接输入过去 20 天的序列GRU 默认用 step_len20即拿 20 天窗口做输入。如果你策略迭代频繁、数据是日线级别GRU 是投入产出比很高的选择。30 秒看懂 GRU把 GRU 想象成一本每天记录行情的笔记本。写今天这页之前它先看两个开关重置门——决定写新内容前忽略多少旧笔记。行情风格变了它就把旧页划掉更多。更新门——决定旧笔记里多少内容留下来。旧趋势还成立就多留。合并成一行数学就是h_t (1 − z_t)·h_{t-1} z_t·h_tz_t 是更新门h 是记忆。LSTM 多一个细胞状态和两个门GRU 把遗忘输入合并成一个更新门参数因此少一截。Qlib 的实现很薄一个两层nn.GRU接一个全连接层取序列最后一个时间步的输出当预测值。代码在 pytorch_gru_ts.py不到 300 行值得通读一遍。把第一次训练跑起来整条链路是写 YAML → 一条命令qrun→ 拿到信号并自动回测。数据怎么配YAML 里只写三件事官方示例配置简化后长这样data_handler_config: instruments: csi300 # 股票池沪深300成分股 start_time: 2008-01-01 # 数据起始日 infer_processors: - class: FilterCol # 只保留 20 个特征其余丢弃 kwargs: col_list: [RESI5, WVMA5, ...] # 特征清单共 20 个 - class: RobustZScoreNorm # 稳健标准化 kwargs: clip_outlier: true # 先截断异常值防止把整体分布拉偏 label: [Ref($close, -2)/Ref($close, -1)-1] # 标签次日收益三件事拆开说特征筛选FilterCol从 Alpha158 里挑出 20 个特征。不是特征越多越好样本有限时宽输入更容易过拟合。稳健标准化RobustZScoreNorm用中位数和分位数代替均值方差少数极端交易日带不飞整条分布clip_outlier: true先截断离群点。标签构造Ref($close, -1)是次日收盘价Ref($close, -2)是后日收盘价两者相除减 1就是明天到后天的收益。模型只用今天及以前的数据预测这一格收益。参数怎么调GRU 参数速查表参数管什么示例取值什么时候动d_feat特征维度20改了 col_list 必须同步长度要对上hidden_size每层隐藏神经元数64过拟合先砍到 32num_layersGRU 叠几层2一般不动日线数据长程依赖弱dropout训练时随机丢弃神经元0.0金融样本少加了反而难收敛batch_size一次喂多少条序列800显存有富余就翻倍上限 2000lr学习率2e-4损失不降就减半early_stop验证集多久不涨就停10验证波动大时放宽到 20n_epochs最大训练轮数200只是上限通常早停更早触发训练怎么跑装好 A 股数据后一条命令qrun examples/benchmarks/GRU/workflow_config_gru_Alpha158.yaml后台有三件事在自动发生都写在源码里缺失值用前向后向填充ffillbfill停牌日不会留下 NaN。每轮梯度按 3.0 裁剪防止某个极端行情把参数打飞。早停验证集连续 10 轮不再变好就停并回退到历史最优参数。数据集被切成三段train2008–2014、valid2015–2016、test2017–2020-08TSDatasetH负责把它们包装成定长序列。完整示例在 examples/benchmarks/GRU想用 Python 代码而非 YAML 搭流程参考 workflow_by_code.py。结果怎么读 训练时盯住的 3 个指标训练/验证损失差比值控制在 15% 以内。训练损失一路降、验证损失掉头向上就是过拟合开始。IC预测值与实际收益的相关性稳定大于 0.05 才算信号可用长期低于 0.03 基本没有信息量。换手率控制在 30% 以内否则收益会被佣金和价差吃掉。训练完成后 SigAnaRecord 会自动产出 IC 分析图回测关键配置示例 YAML 里的回测部分就四行逐条说策略TopkDropoutStrategy每天持有评分前 50 名topk50每次调仓最多换出 5 只n_drop5用惯性持仓压低换手。成本买入 0.0005、卖出 0.0015含印花税最低 5 元。基准SH000300沪深300。回测区间 2017-01-01 至 2020-08-01初始资金 1 亿。看收益的同时一定看回撤常见坑⚠️ 三个过拟合信号训练损失 0.01、验证损失 0.05差距已经很明显。先砍 hidden_size再检查特征清单——20 个是精选出来的盲目加特征往往适得其反。IC 不达标先确认标签和特征不同日Qlib 的DataHandlerLP会自动对齐防止把未来数据混进输入仍不达标再考虑换特征集或加长 step_len。换手率过高如果不用 TopkDropout每天全换前 50 名换手可能超过 50%n_drop5 就是专门压这个的。离实盘还差几步回测漂亮别急着上线清单如下序列化用torch.jit.trace转成 TorchScript实盘进程不必背整个 PyTorch 环境。特征缓存复用 data_cache_demo.py 的特征缓存思路降低实时计算延迟。健康监控预测 IC 连续 3 天低于 0.05触发重训练。风控红线市场波动率超过 0.02 这类阈值时把持仓从 50 只缩到 20 只给策略设最大回撤熔断。数据体检上线前跑一遍 check_data_health.py确认数据没有断档。下一步往哪走滚动重训用 model_rolling 模块按月重新训练跟上市场状态变化。加注意力机制看 examples/benchmarks/ALSTM 与 Transformer 示例把注意力接到 GRU 上捕捉关键时点。组合优化GRU 评分喂给 portfolio 模块用风险模型算权重而不是机械持有前 50。高频场景highfreq 模块支持分钟级数据把 step_len 缩到 5 做 5 分钟 bar 预测。跑通这一圈之后把源码拉到本地git clone https://gitcode.com/GitHub_Trending/qli/qlib从 examples 里的 GRU 目录改起——从一份 YAML 到一份回测报告你的第一个轻量时序预测模型就跑起来了。【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表