一.模型整体流程介绍:
1.数据加载和处理:
- 使用pandas库读取CSV文件中的股票数据,并将日期列转换为datetime类型。
- 选择需要使用的列('Date', 'Close', 'High', 'Low', 'Open')作为特征。
- 创建了一个create_date_features函数来提取日期相关的特征,例如月份、日期、年份等,并将这些特征添加到数据帧中。
2. 时间序列特征工程:
- 使用statsmodels库的CalendarFourier和DeterministicProcess类创建时间序列的季节性特征。
- 创建一个包含日期特征和季节性特征的新数据帧。
3.数据预处理:
- 使用MinMaxScaler对数据进行归一化处理。
- 定义了一个滚动窗口大小(look_back)来创建训练集和测试集。
- 创建了一个函数create_dataset,用于将时间序列数据转换为监督学习问题的数据集。
4.构建和训练模型:
- 使用Keras库构建了一个包含多个LSTM层的序列模型。
- 模型中使用了LeakyReLU激活函数和Dropout正则化层来提高模型的性能和鲁棒性。
- 使用Adamax优化器和平均绝对百分比误差(MAPE)作为损失函数来编译模型。
- 使用训练集数据训练模型,并使用验证集数据进行模型的早停策略。
5.模型预测和评估:
- 使用训练好的模型对训练集和测试集进行预测。
- 使用matplotlib库将实际值和预测值进行可视化比较。
- 计算并输出测试集和训练集的均方根误差(RMSE)。
总结:这段代码主要通过加载、处理和预处理股票数据,提取时间序列特征,构建和训练LSTM模型,以及进行模型预测和评估来实现股票预测。
二.数据集介绍(开始日期是:2015/11/23),数据一共是1826行,预测的收盘价格
结束时间是:2020/11/20。
3.效果图
4.运行视频
基于时间特征工程与LSTM结合的雅虎美股预测哔哩哔哩bilibili