pip install gradio plotly torch pandas numpy scikit-learn matplotlib seabornpython gradio_pipeline_ui.py启动后,浏览器会自动打开 http://localhost:7860
- 点击 "步骤1: 加载股票JSON" 标签页
- 上传你的JSON文件(如
data/demo.json) - 点击 "📥 加载股票列表"
- 查看:
- 股票统计信息
- 详细股票列表表格
- 市场分布饼图
示例JSON格式:
{
"US": [
{"symbol": "NVDA", "name": "NVIDIA", "reason": "...", "category": "..."}
],
"CN": [
{"symbol": "600519", "name": "贵州茅台", "reason": "...", "category": "..."}
]
}- 点击 "步骤2: 数据抓取" 标签页
- 配置参数:
- 目标市场: CN (或 US/HK/JP)
- 开始日期: 2020-01-01
- 结束日期: 2024-12-31
- 批量大小: 5 (推荐)
- 批次间延迟: 2.0秒 (推荐)
- 点击 "📥 开始抓取数据"
- 等待进度完成(会自动显示进度)
- 查看数据统计表格
注意:
- A股数据使用 AkShare(免费)
- 美股/港股/日股使用 yfinance(免费)
- 抓取过程可能需要几分钟,请耐心等待
- 点击 "步骤3: 数据预处理" 标签页
- 输入目标股票代码(如
600519) - 点击 "🔄 开始预处理"
- 查看:
- 数据集划分统计
- T日和T+1日收益率分布图
输出:
- 训练集:70%
- 验证集:15%
- 测试集:15%
- 点击 "步骤4: SST模型训练" 标签页
- 配置参数:
- 训练轮数: 50 (推荐初次尝试,可调整到100-200)
- 批量大小: 32
- 学习率: 0.001
- 点击 "🚀 开始训练SST"
- 实时查看:
- 训练和验证损失曲线
- T日和T+1日分项损失
- 最佳验证损失
训练时间: 约2-5分钟(取决于数据量和硬件)
模型特点:
- 双输出架构(同时预测T日和T+1日)
- Transformer编码器
- 自动保存最佳模型到
best_sst_model.pth
- 点击 "步骤5: 特征提取" 标签页
- 点击 "🔍 开始特征提取"
- 查看可视化:
- 池化特征分布
- T+1日预测残差分布
- 特征热图
- 残差时间序列
提取的特征:
- Encoder输出
- Attention权重
- 池化特征(用于后续时序模型)
- 残差(实际值 - 预测值)
- 点击 "步骤6: 时序模型训练" 标签页
- 配置参数:
- 模型类型: LSTM / GRU / TCN
- 训练轮数: 100 (推荐)
- 批量大小: 32
- 学习率: 0.001
- 序列长度: 60 (天)
- 点击 "🚀 开始训练时序模型"
- 查看训练曲线
建议:
- 依次训练 LSTM、GRU、TCN 三个模型
- 每个模型训练完成后再训练下一个
- 训练时间:约5-10分钟/模型
模型对比:
- LSTM: 带Attention,适合长序列
- GRU: 轻量级,训练更快
- TCN: 时序卷积,并行计算
- 点击 "步骤7: 模型评估" 标签页
- 设置序列长度(需与训练时一致,默认60)
- 点击 "📊 开始评估"
- 查看:
- 模型性能对比表
- 性能对比柱状图(4个指标)
评估指标:
- MSE: 均方误差(越小越好)
- MAE: 平均绝对误差(越小越好)
- Direction Accuracy: 方向准确率(越高越好)
- Sharpe Ratio: 夏普比率(越高越好)
示例输出:
Model MSE MAE Direction_Acc Sharpe_Ratio
SST 0.001234 0.025678 0.5234 0.4521
LSTM 0.001156 0.024532 0.5456 0.5234
GRU 0.001189 0.024789 0.5389 0.5123
TCN 0.001201 0.025012 0.5312 0.4987
- 7个标签页,对应7个步骤
- 每个步骤都有详细的参数配置
- 实时进度显示
- 可视化图表展示
✅ 实时进度显示
- 数据抓取进度
- 模型训练进度
- 特征提取进度
📊 可视化图表
- 训练曲线
- 特征分布
- 性能对比
📋 详细统计
- 数据统计表格
- 模型参数信息
- 评估指标表
第一次使用时,建议:
- 使用较少的epochs(SST: 20, 时序: 30)
- 使用较小的数据集(日期范围缩短)
- 先训练一个时序模型,确认流程无误
SST模型:
- Epochs: 50-100(数据少), 100-200(数据多)
- Batch Size: 32(推荐), 64(数据多时)
- Learning Rate: 0.001(推荐), 0.0005(更稳定)
时序模型:
- Epochs: 100-200
- Sequence Length: 60(推荐), 90-120(长期趋势)
- Learning Rate: 0.001(推荐)
避免API限流:
- 批量大小: 3-5
- 批次间延迟: 2-3秒
- 不要一次抓取太多股票(<50只)
数据源:
- A股: AkShare(免费,无需API key)
- 美股/港股/日股: yfinance(免费)
推荐组合:
- SST(必需)- 提取空间关系特征
- LSTM - 标准时序模型
- GRU - 轻量级对比
- TCN - 快速推理
性能对比:
- 通常 LSTM ≈ GRU > TCN
- TCN 推理速度最快
- 根据实际数据效果选择
解决方案:
- 检查网络连接
- 减小批量大小
- 增加延迟时间
- 检查股票代码是否正确
解决方案:
- 减少epochs
- 增大batch size
- 使用GPU(如果有)
- 减少数据量
解决方案:
- 增加训练轮数
- 调整学习率
- 检查数据质量
- 尝试不同的序列长度
解决方案:
- 减小batch size
- 减少序列长度
- 减少数据量
- 关闭其他程序
训练完成后,会生成以下文件:
historical_data.pkl # 原始历史数据
best_sst_model.pth # 最佳SST模型
best_lstm_model.pth # 最佳LSTM模型
best_gru_model.pth # 最佳GRU模型
best_tcn_model.pth # 最佳TCN模型
这些文件可以用于:
- 后续推理
- 模型部署
- 继续训练
- 使用
data/demo.json开始 - 按照7个步骤依次执行
- 观察每个步骤的输出
- 理解各个模型的作用
- 在Claude上用智能体生成自己的选股JSON
- 调整超参数优化模型
- 尝试不同的市场和股票
- 分析模型预测结果
- 修改pipeline代码,添加新特征
- 集成更多时序模型
- 实现在线学习
- 部署到生产环境
- 文档: README.md
- 示例: data/demo.json
- 代码: complete_training_pipeline.py
- Issues: GitHub Issues
# 1. 安装依赖
pip install gradio plotly torch pandas numpy scikit-learn matplotlib seaborn akshare yfinance
# 2. 启动UI
python gradio_pipeline_ui.py
# 3. 打开浏览器访问
# http://localhost:7860
# 4. 开始训练!Happy Training! 🚀
Quant-Stock-Transformer Team | Version 1.0.0