Skip to content

Latest commit

 

History

History
346 lines (261 loc) · 7.29 KB

File metadata and controls

346 lines (261 loc) · 7.29 KB

🎨 Gradio Pipeline UI 使用指南

📦 安装依赖

pip install gradio plotly torch pandas numpy scikit-learn matplotlib seaborn

🚀 启动UI

python gradio_pipeline_ui.py

启动后,浏览器会自动打开 http://localhost:7860


🎯 完整使用流程(7个步骤)

📋 步骤1: 加载股票JSON

  1. 点击 "步骤1: 加载股票JSON" 标签页
  2. 上传你的JSON文件(如 data/demo.json
  3. 点击 "📥 加载股票列表"
  4. 查看:
    • 股票统计信息
    • 详细股票列表表格
    • 市场分布饼图

示例JSON格式:

{
  "US": [
    {"symbol": "NVDA", "name": "NVIDIA", "reason": "...", "category": "..."}
  ],
  "CN": [
    {"symbol": "600519", "name": "贵州茅台", "reason": "...", "category": "..."}
  ]
}

📊 步骤2: 数据抓取

  1. 点击 "步骤2: 数据抓取" 标签页
  2. 配置参数:
    • 目标市场: CN (或 US/HK/JP)
    • 开始日期: 2020-01-01
    • 结束日期: 2024-12-31
    • 批量大小: 5 (推荐)
    • 批次间延迟: 2.0秒 (推荐)
  3. 点击 "📥 开始抓取数据"
  4. 等待进度完成(会自动显示进度)
  5. 查看数据统计表格

注意:

  • A股数据使用 AkShare(免费)
  • 美股/港股/日股使用 yfinance(免费)
  • 抓取过程可能需要几分钟,请耐心等待

🔄 步骤3: 数据预处理

  1. 点击 "步骤3: 数据预处理" 标签页
  2. 输入目标股票代码(如 600519
  3. 点击 "🔄 开始预处理"
  4. 查看:
    • 数据集划分统计
    • T日和T+1日收益率分布图

输出:

  • 训练集:70%
  • 验证集:15%
  • 测试集:15%

🧠 步骤4: SST模型训练

  1. 点击 "步骤4: SST模型训练" 标签页
  2. 配置参数:
    • 训练轮数: 50 (推荐初次尝试,可调整到100-200)
    • 批量大小: 32
    • 学习率: 0.001
  3. 点击 "🚀 开始训练SST"
  4. 实时查看:
    • 训练和验证损失曲线
    • T日和T+1日分项损失
    • 最佳验证损失

训练时间: 约2-5分钟(取决于数据量和硬件)

模型特点:

  • 双输出架构(同时预测T日和T+1日)
  • Transformer编码器
  • 自动保存最佳模型到 best_sst_model.pth

🔍 步骤5: 特征提取

  1. 点击 "步骤5: 特征提取" 标签页
  2. 点击 "🔍 开始特征提取"
  3. 查看可视化:
    • 池化特征分布
    • T+1日预测残差分布
    • 特征热图
    • 残差时间序列

提取的特征:

  • Encoder输出
  • Attention权重
  • 池化特征(用于后续时序模型)
  • 残差(实际值 - 预测值)

⏰ 步骤6: 时序模型训练

  1. 点击 "步骤6: 时序模型训练" 标签页
  2. 配置参数:
    • 模型类型: LSTM / GRU / TCN
    • 训练轮数: 100 (推荐)
    • 批量大小: 32
    • 学习率: 0.001
    • 序列长度: 60 (天)
  3. 点击 "🚀 开始训练时序模型"
  4. 查看训练曲线

建议:

  • 依次训练 LSTM、GRU、TCN 三个模型
  • 每个模型训练完成后再训练下一个
  • 训练时间:约5-10分钟/模型

模型对比:

  • LSTM: 带Attention,适合长序列
  • GRU: 轻量级,训练更快
  • TCN: 时序卷积,并行计算

📈 步骤7: 模型评估

  1. 点击 "步骤7: 模型评估" 标签页
  2. 设置序列长度(需与训练时一致,默认60)
  3. 点击 "📊 开始评估"
  4. 查看:
    • 模型性能对比表
    • 性能对比柱状图(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

📸 UI界面预览

主界面

  • 7个标签页,对应7个步骤
  • 每个步骤都有详细的参数配置
  • 实时进度显示
  • 可视化图表展示

关键功能

✅ 实时进度显示

  • 数据抓取进度
  • 模型训练进度
  • 特征提取进度

📊 可视化图表

  • 训练曲线
  • 特征分布
  • 性能对比

📋 详细统计

  • 数据统计表格
  • 模型参数信息
  • 评估指标表

💡 使用技巧

1. 快速测试

第一次使用时,建议:

  • 使用较少的epochs(SST: 20, 时序: 30)
  • 使用较小的数据集(日期范围缩短)
  • 先训练一个时序模型,确认流程无误

2. 参数调优

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(推荐)

3. 数据抓取

避免API限流:

  • 批量大小: 3-5
  • 批次间延迟: 2-3秒
  • 不要一次抓取太多股票(<50只)

数据源:

  • A股: AkShare(免费,无需API key)
  • 美股/港股/日股: yfinance(免费)

4. 模型选择

推荐组合:

  1. SST(必需)- 提取空间关系特征
  2. LSTM - 标准时序模型
  3. GRU - 轻量级对比
  4. TCN - 快速推理

性能对比:

  • 通常 LSTM ≈ GRU > TCN
  • TCN 推理速度最快
  • 根据实际数据效果选择

🐛 常见问题

Q1: 数据抓取失败

解决方案:

  • 检查网络连接
  • 减小批量大小
  • 增加延迟时间
  • 检查股票代码是否正确

Q2: 训练很慢

解决方案:

  • 减少epochs
  • 增大batch size
  • 使用GPU(如果有)
  • 减少数据量

Q3: 模型效果不好

解决方案:

  • 增加训练轮数
  • 调整学习率
  • 检查数据质量
  • 尝试不同的序列长度

Q4: 内存不足

解决方案:

  • 减小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模型

这些文件可以用于:

  • 后续推理
  • 模型部署
  • 继续训练

🎓 学习路径

初学者

  1. 使用 data/demo.json 开始
  2. 按照7个步骤依次执行
  3. 观察每个步骤的输出
  4. 理解各个模型的作用

进阶用户

  1. 在Claude上用智能体生成自己的选股JSON
  2. 调整超参数优化模型
  3. 尝试不同的市场和股票
  4. 分析模型预测结果

高级用户

  1. 修改pipeline代码,添加新特征
  2. 集成更多时序模型
  3. 实现在线学习
  4. 部署到生产环境

📞 支持

  • 文档: 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