# Comp **Repository Path**: hoi_xd/comp ## Basic Information - **Project Name**: Comp - **Description**: comp git - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-29 - **Last Updated**: 2025-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AFAC2025 基金预测项目 本项目是针对 **AFAC2025挑战组-赛题一:基金产品的长周期申购和赎回预测** 的解决方案。 ## 📋 项目概述 该项目实现了基于深度学习的基金申购赎回预测系统,包含: - 🧠 **RNN/GRU模型**:时间序列预测核心 - 📊 **多模态特征融合**:市场数据 + LLM语义特征 - 💾 **智能缓存系统**:避免重复API调用 - ⚙️ **自动化工具链**:Makefile管理项目 ## 🚀 快速开始 ### 1. 环境准备 ```bash # 安装Python依赖 make install-deps # 或手动安装 pip install pandas numpy torch scikit-learn matplotlib seaborn jupyter ``` ### 2. 数据获取 ```bash # 初始化项目和数据(推荐) make setup # 或手动获取最新数据 make update-data ``` ### 3. 训练模型 ```bash # 基础RNN训练(36个特征) make train # 增强特征训练(包含LLM特征) make train-enhanced # 基线模型 make baseline ``` ## 📊 数据说明 ### 数据源 - **主数据**:[AFAC2025训练数据](https://github.com/AFAC-2025/AFAC2025_train_data.git) - **本地文件**:`fund_apply_redeem_series.csv` - 基础申购赎回数据 - **增强文件**:`fund_enhanced_features.csv` - 包含市场特征的增强数据 ### 数据结构 - **基金数量**:20个 - **时间范围**:445天(2024年4月8日起) - **基础特征**:申购量、赎回量、页面UV等 - **增强特征**:36维(市场指数、交易量、时间特征等) - **LLM特征**:512维语义embedding + 结构化标签 ## 🏗️ 项目架构 ### 核心文件 ``` ├── original_test_rnn.py # 基础RNN模型(36特征) ├── test_rnn.py # 增强RNN模型(多模态融合) ├── feature_cache_manager.py # 特征缓存管理器 ├── process_features_main.py # 特征处理主程序 ├── baseline.py # 基线模型 └── modules.py # 网络模块定义 ``` ### 模型架构 #### 基础RNN(original_test_rnn.py) - **输入**:36维增强特征 - **序列长度**:30天(您刚修改的) - **隐藏层**:512维GRU - **输出**:7天 × 2变量预测 #### 增强RNN(test_rnn.py) - **多模态融合**:增强特征 + LLM embedding - **特征映射**:FC层统一到512维语义空间 - **序列长度**:14天 - **输出**:7天 × 2变量预测 ## 🛠️ Makefile 命令 ### 数据管理 ```bash make setup # 初始化项目和数据子模块 make update-data # 更新训练数据到最新版本 make check-data # 检查数据文件状态 make sync-latest # 同步最新的fund_apply_redeem_series.csv ``` ### 训练和测试 ```bash make train # 运行RNN模型训练 make train-enhanced # 运行增强特征训练 make test # 运行所有测试 make baseline # 运行基线模型 ``` ### 特征处理 ```bash make process-features # 处理和缓存特征 make cache-market # 缓存市场特征 make cache-llm # 缓存LLM特征 ``` ### 开发工具 ```bash make clean # 清理临时文件 make status # 检查项目状态 make analyze # 启动Jupyter分析 make dev # 开发模式(文件监控) ``` ## 📈 训练结果 ### 基础RNN(36特征) - **数据维度**:`[20, 445, 36]` - **训练样本**:8320个 - **训练损失**:0.168 → 0.030 - **测试损失**:0.018 - **序列长度**:30天 ### 增强RNN(多模态) - **数据维度**:`[20, 445, 558]`(选择性加载) - **特征融合**:46维增强 + 512维LLM - **训练损失**:6029 → 4384 - **测试损失**:1918 - **序列长度**:14天 ## 🔧 配置说明 ### 特征缓存配置 ```python # feature_cache_manager.py include_llm_embeddings = False # 默认不加载LLM embeddings include_llm_labels = True # 加载LLM结构化标签 ``` ### 模型参数 ```python # 基础RNN seq_len = 30 # 序列长度(您刚修改的) hidden_size = 512 # 隐藏层维度 num_epochs = 10 # 训练轮数 # 增强RNN enhanced_dim = 46 # 增强特征维度 embedding_dim = 512 # LLM embedding维度 ``` ## 🎯 预测流程 1. **数据准备**:获取最新的`fund_apply_redeem_series.csv` 2. **特征工程**:生成市场特征、时间特征等 3. **特征缓存**:缓存LLM特征避免重复计算 4. **模型训练**:使用历史数据训练RNN模型 5. **预测生成**:预测未来7天的申购赎回量 ## 📝 Git Submodule 使用 ### 初始化 ```bash # 添加submodule git submodule add https://github.com/AFAC-2025/AFAC2025_train_data.git data # 初始化和更新 git submodule init git submodule update ``` ### 更新数据 ```bash # 进入data目录更新 cd data git pull origin main # 或使用Makefile make update-data ``` ### 克隆包含submodule的项目 ```bash # 递归克隆 git clone --recursive # 或分步操作 git clone git submodule init git submodule update ``` ## 🚨 注意事项 1. **网络连接**:确保能访问GitHub获取最新数据 2. **数据版本**:定期运行`make update-data`获取最新数据 3. **特征缓存**:首次运行会生成LLM特征,需要较长时间 4. **模型选择**:根据需求选择基础RNN或增强RNN 5. **序列长度**:您已将基础RNN的序列长度改为30天 ## 📞 支持 如有问题,请检查: 1. `make status` - 检查项目状态 2. `make check-data` - 检查数据文件 3. 查看具体的Python脚本错误信息 --- **项目状态**:✅ 已完成特征缓存系统、多模态RNN模型和自动化工具链