# yield-predict-project **Repository Path**: shakenetwork/yield-predict-project ## Basic Information - **Project Name**: yield-predict-project - **Description**: 基于数据挖掘框架的股票收益率预测 https://gitee.com/reduce-lova-kedong/yield-predict-project - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-16 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于数据挖掘的股票收益率预测 README ## 1. 项目概述(Project Overview) ### 1.1 项目目标         基于从JoinQuant(聚宽)获取的A股任意一支股票历史数据,通过数据挖掘的方法建立模型,预测未来跨日收益率,为交易者选股、调仓提供策略支持。 ### 1.2 应用场景         A股市场日级交易者选股、调仓。 ### 1.3 核心价值         为交易者选股、调仓策略提供数据科学理论支持,用大量历史数据总结出的规律替代感性的交易策略;部分股票预测涨跌错误率可以控制在0.35以下。 ## 2. 环境配置(Environment Setup) - **操作系统**:Windows 10/11、macOS 12+ - **聚宽研究环境链接**:[【新消息】研究 - JoinQuant](https://www.joinquant.com/research) 注:免费注册账号后,即可进入可新建基于python2/3的jupyter notebook,该环境下已经安装了本项目所需的所有库,只需用import导入即可 ## 3. 数据说明(Data Description) ### 3.1 数据来源         JoinQuant开源数据 ### 3.2 数据获取与集成 - 特征集:`data/X.csv` - 标签集:`data/y.csv` - 数据获取代码:`data/Data_Acquisition_and_Integration.ipynb` 注:Data_Acquisition_and_Integration.ipynb中包含了构建时间序列滞后项这一初步特征工程 ## 4. 核心功能与模型(Core Features & Models) **代码路径**: (1)`data/model.ipnyb` (2)`data/model_with_data.ipnyb` 注:为方便实验复现,上面第二个文件的第一个单元格是在 JoinQuant研究环境的数据获取代码 ### 4.1 数据预处理 1. **数据划分** - 按 8:2比例划分为训练集(train)、测试集(test); - 划分时保证任意测试集样本在任意训练样本之后,避免出现用未来数据训练用过去数据测试的不合理情形。 2. **缺失值处理**:     (1)删除不更新的列;     (2)丢弃缺失值超过20%的列;     (3)用线性方法填充剩下位置的缺失值;     注:训练集和测试集采取不同的线性填充方式,训练集采用双向线性填充,测试集则是前往后的单向线性填充 3. **标准化** 用StandardScaler()将特征数据标准化 ### 4.2 特征工程 - **特征选择**: - 嵌入法:使用互信息的特征重要性评分,保留 Top80特征; ### 4.3 建模过程 | 模型类型 | 具体算法 | 调参工具 | | ------ | ------- | ------------ | | 传统机器学习 | XGBoost | GridSearchCV | ### 4.4 模型评估 - **评估指标**: - 采用“涨跌预测错误率”:**y_test_predict和y_test符号相反的数量占比** 注:这里没有采用传统回归任务的评估指标,因为在实际股票交易中,交易者最关注的是预测某只股票“涨”或“跌”是否准确,且日级的收益率是绝对值较小的数值,如果采用RMSE等传统回归任务指标,可能会出现某个模型整体指标优秀但是却总是预测股票涨跌错误的情形。 - **评估逻辑**: 1. 在训练集上进行超参数调优(如 XGBoost 的 `learning_rate`、`max_depth`); 2. 在测试集上验证最终模型性能,输出; ## 5. 使用指南(Usage Guide) ### 5.1 完整运行流程 方法一:免费注册聚宽账号,在聚宽研究环境中上传`data/model_with_data.ipnyb`,运行每一个单元格(推荐) 方法二:本地环境运行,载入`data/X.csv`,`data/X.csv`,运行脚本`data/model.ipnyb` 注:若是想用相同方法模型测试其他股票,只需修改代码开头code的取值即可。 ### 5.2 示例输出 | 模型 | 错误率 | | ------- | ---- | | XGBoost | 0.35 | 注:XGBoost模型具有一定的随机性,相同数据、相同代码每次输出都有可能不同,若无法达到示例的错误率可尝试多运行几次。 ## 6. 项目结构(Project Structure) ``` data-mining-project │ README.md │ ├─code │ model.ipynb │ model_with_data.ipynb │ ├─data │ Data_Acquisition_and_Integration.ipynb │ X.csv │ y.csv │ ├─docs ├─notebooks └─results result_1.png result_2.png ```