Files
LSTM-Quantitative-Trading-E…/CHANGELOG.md
T
2025-10-27 19:45:33 +08:00

154 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 更新日志 (Changelog)
## [2.0.0] - 2025-10-27
### ✨ 新增功能
#### 训练改进
- **训练集/验证集划分**: 自动划分80%训练集和20%验证集
- **双Loss监控**: 每个epoch同时显示训练Loss和验证Loss
- **早停机制(Early Stopping)**: 验证Loss连续20轮不降则自动停止训练
- **最佳模型保存**: 自动保存验证Loss最低的模型,而非最后一轮
- **智能训练**: 最多训练500轮,但通常会在150-200轮触发早停
#### 可视化功能
- **训练曲线图**: 自动生成 `training_loss.png`
- 双曲线对比(训练Loss vs 验证Loss
- 标记最佳模型的epoch位置
- 提供完整曲线和后期收敛细节两个子图
- 支持中文字体显示
#### 诊断功能
- **训练总结报告**: 训练结束后自动输出
- 总训练轮数
- 最佳模型epoch
- 最佳验证Loss
- 最终训练Loss和验证Loss
- 训练/验证Loss差异分析
- **智能诊断**: 自动判断模型状态
- ✓ 良好:没有明显过拟合
- ⚠ 尚可:有轻微过拟合倾向
- ✗ 警告:可能存在过拟合
### 📝 文档更新
#### README.md
- 更新训练流程说明,详细说明新增功能
- 新增"如何判断模型训练效果好坏"FAQ
- 新增"验证Loss远高于训练Loss"问题解答
- 更新训练参数表格,包含早停和验证集信息
- 更新性能基准数据
- 标注版本号为2.0.0并列出更新内容
#### 提示词文件
- **prompt_simple.txt**: 更新训练脚本要求,包含验证集和早停
- **prompt_professional.txt**: 详细补充所有新功能的实现要求
- 验证集监控
- 早停机制
- 最佳模型保存
- 训练可视化
- 智能诊断
- 更新成功标准和重要提示
### 🔧 代码优化
#### train_lstm.py
- 代码从150行扩展到~330行(增加了大量功能但保持可读性)
- 所有新增代码均有详细中文注释
- 改进的训练循环:
```python
for epoch in range(500): # 最多500轮
# 训练阶段
model.train()
# ... 训练代码 ...
# 验证阶段
model.eval()
with torch.no_grad():
# ... 验证代码 ...
# 早停检查
if val_loss < best_val_loss:
best_model_state = model.state_dict()
else:
patience_counter += 1
if patience_counter >= patience:
break # 触发早停
```
### 📊 训练效果对比
#### v1.0.0(旧版本)
- 固定训练100轮
- 只有训练Loss
- 无法判断过拟合
- 可能保存次优模型
- 训练时间:~15秒
#### v2.0.0(新版本)
- 智能训练150-200轮(早停)
- 训练Loss + 验证Loss
- 自动检测过拟合
- 保证保存最佳模型
- 训练时间:~30秒
- 新增训练曲线图
- 新增诊断报告
### 🎯 教学价值提升
1. **理解过拟合**: 通过双Loss对比直观理解
2. **学习早停**: 了解工业界常用的训练技巧
3. **模型评估**: 学会判断模型质量的方法
4. **可视化思维**: 培养通过图表分析问题的能力
5. **最佳实践**: 掌握训练集/验证集划分的重要性
### 📦 新增文件
- `training_loss.png` - 训练曲线图(自动生成)
- `CHANGELOG.md` - 本更新日志
### ⚙️ 依赖变化
需要安装matplotlib用于绘图(可选):
```bash
pip install matplotlib
```
如果未安装matplotlib,程序会跳过绘图但不影响训练。
### 🐛 问题修复
- 修复了可能保存次优模型的问题(现在保存验证Loss最低的模型)
- 优化了文件路径处理,确保所有输出文件保存到脚本目录
### 🔮 未来计划
- [ ] 添加TensorBoard支持
- [ ] 支持学习率动态调整
- [ ] 添加多模型对比功能
- [ ] 支持分布式训练
- [ ] 增加更多技术指标特征
---
## [1.0.0] - 2025-10-27(初始版本)
### 基础功能
- LSTM模型训练
- CUDA GPU加速
- MT5数据获取
- ONNX模型导出
- MQL5 EA交易
- 基础文档
---
**版本说明**:
- 主版本号:重大功能变更或架构调整
- 次版本号:新增功能或重要改进
- 修订号:Bug修复或小优化
**当前版本**: 2.0.0
**维护状态**: 活跃开发中