基于时序特征处理与LSTM结合的雅虎美股数据预测

一.模型整体流程介绍:

  1. 数据加载和处理:

    • 使用pandas库读取CSV文件中的股票数据,并将日期列转换为datetime类型。
    • 选择需要使用的列('Date', 'Close', 'High', 'Low', 'Open')作为特征。
    • 创建了一个create_date_features函数来提取日期相关的特征,例如月份、日期、年份等,并将这些特征添加到数据帧中。
  2.  时间序列特征工程:

    • 使用statsmodels库的CalendarFourierDeterministicProcess类创建时间序列的季节性特征。
    • 创建一个包含日期特征和季节性特征的新数据帧。
  3. 数据预处理:

    • 使用MinMaxScaler对数据进行归一化处理。
    • 定义了一个滚动窗口大小(look_back)来创建训练集和测试集。
    • 创建了一个函数create_dataset,用于将时间序列数据转换为监督学习问题的数据集。
  4. 构建和训练模型:

    • 使用Keras库构建了一个包含多个LSTM层的序列模型。
    • 模型中使用了LeakyReLU激活函数和Dropout正则化层来提高模型的性能和鲁棒性。
    • 使用Adamax优化器和平均绝对百分比误差(MAPE)作为损失函数来编译模型。
    • 使用训练集数据训练模型,并使用验证集数据进行模型的早停策略。
  5. 模型预测和评估:

    • 使用训练好的模型对训练集和测试集进行预测。
    • 使用matplotlib库将实际值和预测值进行可视化比较。
    • 计算并输出测试集和训练集的均方根误差(RMSE)。

总结:这段代码主要通过加载、处理和预处理股票数据,提取时间序列特征,构建和训练LSTM模型,以及进行模型预测和评估来实现股票预测。

二.数据集介绍(开始日期是:2015/11/23),数据一共是1826行,预测的收盘价格

Date High Low Open Close Volume
2015/11/23 2095.610107 2081.389893 2089.409912 2086.590088 3587980000
2015/11/24 2094.120117 2070.290039 2084.419922 2089.139893 3884930000
2015/11/25 2093 2086.300049 2089.300049 2088.870117 2852940000
2015/11/26 2093 2086.300049 2089.300049 2088.870117 2852940000
2015/11/27 2093.290039 2084.129883 2088.820068 2090.110107 1466840000
2015/11/28 2093.290039 2084.129883 2088.820068 2090.110107 1466840000
2015/11/29 2093.290039 2084.129883 2088.820068 2090.110107 1466840000
2015/11/30 2093.810059 2080.409912 2090.949951 2080.409912 4275030000
2015/12/1 2103.370117 2082.929932 2082.929932 2102.629883 3712120000
2015/12/2 2104.27002 2077.110107 2101.709961 2079.51001 3950640000
2015/12/3 2085 2042.349976 2080.709961 2049.620117 4306490000
2015/12/4 2093.840088 2051.23999 2051.23999 2091.689941 4214910000
2015/12/5 2093.840088 2051.23999 2051.23999 2091.689941 4214910000
2015/12/6 2093.840088 2051.23999 2051.23999 2091.689941 4214910000
2015/12/7 2090.419922 2066.780029 2090.419922 2077.070068 4043820000
2015/12/8 2073.850098 2052.320068 2073.389893 2063.590088 4173570000
2015/12/9 2080.330078 2036.530029 2061.169922 2047.619995 4385250000
2015/12/10 2067.649902 2045.670044 2047.930054 2052.22998 3715150000
2015/12/11 2047.27002 2008.800049 2047.27002 2012.369995 4301060000
2015/12/12 2047.27002 2008.800049 2047.27002 2012.369995 4301060000
2015/12/13 2047.27002 2008.800049 2047.27002 2012.369995 4301060000
2015/12/14 2022.920044 1993.26001 2013.369995 2021.939941 4612440000

结束时间是:2020/11/20。

2020/10/28 3342.47998 3268.889893 3342.47998 3271.030029 5129860000
2020/10/29 3341.050049 3259.820068 3277.169922 3310.110107 4903070000
2020/10/30 3304.929932 3233.939941 3293.590088 3269.959961 4840450000
2020/10/31 3304.929932 3233.939941 3293.590088 3269.959961 4840450000
2020/11/1 3304.929932 3233.939941 3293.590088 3269.959961 4840450000
2020/11/2 3330.139893 3279.73999 3296.199951 3310.23999 4310590000
2020/11/3 3389.48999 3336.25 3336.25 3369.159912 4220070000
2020/11/4 3486.25 3405.169922 3406.459961 3443.439941 4783040000
2020/11/5 3529.050049 3485.73999 3485.73999 3510.449951 4841190000
2020/11/6 3521.580078 3484.340088 3508.340088 3509.439941 4833950000
2020/11/7 3521.580078 3484.340088 3508.340088 3509.439941 4833950000
2020/11/8 3521.580078 3484.340088 3508.340088 3509.439941 4833950000
2020/11/9 3645.98999 3547.47998 3583.040039 3550.5 8556610000
2020/11/10 3557.219971 3511.909912 3543.26001 3545.530029 6024230000
2020/11/11 3581.159912 3557 3563.219971 3572.659912 4609970000
2020/11/12 3569.02002 3518.580078 3562.669922 3537.01001 4890120000
2020/11/13 3593.659912 3552.570068 3552.570068 3585.149902 4709670000
2020/11/14 3593.659912 3552.570068 3552.570068 3585.149902 4709670000
2020/11/15 3593.659912 3552.570068 3552.570068 3585.149902 4709670000
2020/11/16 3628.51001 3600.159912 3600.159912 3626.909912 5281980000
2020/11/17 3623.110107 3588.679932 3610.310059 3609.530029 4799570000
2020/11/18 3619.090088 3567.330078 3612.090088 3567.790039 5274450000
2020/11/19 3585.219971 3543.840088 3559.409912 3581.870117 4347200000
2020/11/20 3581.22998 3556.850098 3579.310059 3557.540039 2236661930

 3.效果图

4.运行视频

基于时间特征工程与LSTM结合的雅虎美股预测_哔哩哔哩_bilibili


import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)


import os
import gc
import warnings

import statsmodels.api as sm


import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
#代码;https://mbd.pub/o/bread/mbd-ZJmTk5dr
import seaborn as sns
import math

from scipy.signal import periodogram
from statsmodels.graphics.tsaplots import plot_pacf
from statsmodels.tsa.deterministic import CalendarFourier, DeterministicProcess, Fourier

你可能感兴趣的:(可创新代码,时序数据深度学习模型,python,开发语言)