基于时序特征处理与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行,预测的收盘价格

DateHighLowOpenCloseVolume
2015/11/232095.6101072081.3898932089.4099122086.5900883587980000
2015/11/242094.1201172070.2900392084.4199222089.1398933884930000
2015/11/2520932086.3000492089.3000492088.8701172852940000
2015/11/2620932086.3000492089.3000492088.8701172852940000
2015/11/272093.2900392084.1298832088.8200682090.1101071466840000
2015/11/282093.2900392084.1298832088.8200682090.1101071466840000
2015/11/292093.2900392084.1298832088.8200682090.1101071466840000
2015/11/302093.8100592080.4099122090.9499512080.4099124275030000
2015/12/12103.3701172082.9299322082.9299322102.6298833712120000
2015/12/22104.270022077.1101072101.7099612079.510013950640000
2015/12/320852042.3499762080.7099612049.6201174306490000
2015/12/42093.8400882051.239992051.239992091.6899414214910000
2015/12/52093.8400882051.239992051.239992091.6899414214910000
2015/12/62093.8400882051.239992051.239992091.6899414214910000
2015/12/72090.4199222066.7800292090.4199222077.0700684043820000
2015/12/82073.8500982052.3200682073.3898932063.5900884173570000
2015/12/92080.3300782036.5300292061.1699222047.6199954385250000
2015/12/102067.6499022045.6700442047.9300542052.229983715150000
2015/12/112047.270022008.8000492047.270022012.3699954301060000
2015/12/122047.270022008.8000492047.270022012.3699954301060000
2015/12/132047.270022008.8000492047.270022012.3699954301060000
2015/12/142022.9200441993.260012013.3699952021.9399414612440000

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

2020/10/283342.479983268.8898933342.479983271.0300295129860000
2020/10/293341.0500493259.8200683277.1699223310.1101074903070000
2020/10/303304.9299323233.9399413293.5900883269.9599614840450000
2020/10/313304.9299323233.9399413293.5900883269.9599614840450000
2020/11/13304.9299323233.9399413293.5900883269.9599614840450000
2020/11/23330.1398933279.739993296.1999513310.239994310590000
2020/11/33389.489993336.253336.253369.1599124220070000
2020/11/43486.253405.1699223406.4599613443.4399414783040000
2020/11/53529.0500493485.739993485.739993510.4499514841190000
2020/11/63521.5800783484.3400883508.3400883509.4399414833950000
2020/11/73521.5800783484.3400883508.3400883509.4399414833950000
2020/11/83521.5800783484.3400883508.3400883509.4399414833950000
2020/11/93645.989993547.479983583.0400393550.58556610000
2020/11/103557.2199713511.9099123543.260013545.5300296024230000
2020/11/113581.15991235573563.2199713572.6599124609970000
2020/11/123569.020023518.5800783562.6699223537.010014890120000
2020/11/133593.6599123552.5700683552.5700683585.1499024709670000
2020/11/143593.6599123552.5700683552.5700683585.1499024709670000
2020/11/153593.6599123552.5700683552.5700683585.1499024709670000
2020/11/163628.510013600.1599123600.1599123626.9099125281980000
2020/11/173623.1101073588.6799323610.3100593609.5300294799570000
2020/11/183619.0900883567.3300783612.0900883567.7900395274450000
2020/11/193585.2199713543.8400883559.4099123581.8701174347200000
2020/11/203581.229983556.8500983579.3100593557.5400392236661930

 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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度学习的奋斗者

你的鼓励是我努力的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值