排序学习模型在选股中的实战

📚 共计 30 章节
01
课程导论
什么是排序学习(LTR)?为什么在选股中要用排序学习?课程目标与前置知识。
导论LTR基础
02
选股问题建模
将选股转化为排序问题。传统回归/分类模型的局限性。Pairwise与Listwise思路。
建模PairwiseListwise
03
特征工程基础
常见选股因子(估值、动量、质量、情绪)。特征标准化与缺失值处理。
因子标准化
04
标签构造
如何定义“好股票”?未来N日收益率排序。相对排名与分组标签。
标签相对排名
05
数据预处理
时间序列数据避免未来函数。训练集、验证集、测试集的时间切片划分。
时间切片未来函数
06
PyTorch环境搭建
安装PyTorch、CUDA配置。张量基础与自动求导。
PyTorchCUDA
07
排序学习损失函数(上)
Pairwise Hinge Loss。代码实现与梯度分析。
HingePairwise
08
排序学习损失函数(下)
Listwise Softmax Loss(ListNet)。NDCG与LambdaRank思想。
ListNetLambdaRank
09
构建第一个排序模型
使用全连接网络。输入特征、输出得分。训练循环与评估。
全连接训练
10
评估指标
NDCG(归一化折损累计增益)。MRR(平均倒数排名)。代码实现评估函数。
NDCGMRR
11
数据加载器
自定义PyTorch Dataset。处理面板数据(股票×时间×特征)。批量采样策略。
Dataset面板数据
12
模型架构设计
DNN基础结构。Batch Normalization与Dropout。残差连接尝试。
DNNBN残差
13
训练技巧
学习率调度(Cosine Annealing)。梯度裁剪。早停法(Early Stopping)。
学习率早停
14
过拟合与正则化
L1/L2正则化。数据增强(时间序列扰动)。模型集成思路。
正则化集成
15
特征选择
基于模型的特征重要性。SHAP值解释。去除冗余特征。
SHAP重要性
16
超参数调优
网格搜索与随机搜索。贝叶斯优化(Optuna)。关键超参数分析。
Optuna贝叶斯
17
Baseline模型对比
线性回归、GBDT(LightGBM)、传统排序模型。对比实验设计。
LightGBMBaseline
18
时间序列交叉验证
滚动窗口验证。扩展窗口验证。避免数据泄露。
滚动窗口数据泄露
19
实战案例(一)
沪深300成分股选股。数据获取(Tushare/Akshare)。特征构建。
沪深300数据获取
20
实战案例(二)
模型训练与调优。损失函数选择对比。结果分析。
调优损失对比
21
实战案例(三)
回测框架搭建。模拟交易逻辑。手续费与滑点设置。
回测滑点
22
实战案例(四)
回测结果分析。夏普比率、最大回撤。超额收益分析。
夏普回撤
23
模型部署
ONNX导出模型。C++/Java推理接口。定时任务自动化。
ONNX部署
24
多因子融合
排序学习得分与传统因子加权。动态权重调整。
多因子动态权重
25
行业中性化
去除行业暴露。行业内部排序。风险控制。
行业中性风险
26
风格因子暴露控制
市值、动量等风格因子。风险模型约束。
风格因子风险模型
27
模型监控与更新
每日得分分布监控。模型衰减检测。定期重训练策略。
监控重训练
28
进阶模型:Transformer
Transformer在排序学习中的应用。注意力机制捕捉股票间关系。
Transformer注意力
29
强化学习与排序学习结合
将选股视为序列决策问题。Policy Gradient思路。
强化学习Policy Gradient
30
课程总结与展望
当前方法的局限性。未来方向(大模型、另类数据)。推荐学习路径。
总结大模型