lstm神经网络时间序列预测.pptxVIP

  • 439
  • 0
  • 约3.93千字
  • 约 14页
  • 2021-04-14 发布于北京
  • 举报
时间序列分析与LSTM网络 原理与实践演讲人:时间:提纲时间序列分析与LSTM原理LSTM进行时间序列预测实现时间序列算法简介?时序分析:基于随机过程理论和数理统计学方法,研究随机数据序列所遵从的统计规律,以用于解决实际问题。时间序列可描述为三种模式: AR:与()有关, 为独立随机波动MA:与()有关,ARIMA:AR,MA与差分策略的组合。时序分析必须满足其平稳性,现有较为成熟的分析技术ARMA模型,LSTM模型均在满足平稳性假设前提下进行。平稳时间序列粗略地讲,一个时间序列,如果均值没有系统的变化(无趋势)、方差没有系统变化,且严格消除了周期性变化,就称之是平稳的。消除非平稳序列比较常见的方法有差分,移动平均,基准比等一般时序分析步骤,周期分解 - 序列平稳化 - 确定影响阶数 -训练ARMA模型,用于预测LSTM算法简介(神经网络基础原理请看BP神经网络)LSTM是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。LSTM在算法中加入了一个判断信息有用与否的“处理器”,这个处理器作用的结构被称为cell。一个cell当中被放置了三扇门,分别叫做输入门、遗忘门和输出门。一个信息进入LSTM的网络当中,可以根据规则来判断是否有用。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。说起来无非就是一进二出的工作原理,却可以在反复运算下解决神经网络中长期存在的大问题。目前已经证明,LSTM是解决长序依赖问题的有效技术,并且这种技术的普适性非常高,导致带来的可能性变化非常多。各研究者根据LSTM纷纷提出了自己的变量版本,这就让LSTM可以处理千变万化的垂直问题相对于传统ARMA模型, LSTM 适合于处理和预测时间序列中间隔和延迟非常长的重要事件。在非线性预测能力、抽象能力或者集成学习能力上,LSTM具有明显优势,且ARMA模型确定阶数过程复杂繁琐,而LSTM可自行学习相关参数。但LSTM的效果必须在庞大数据量基础上才能发挥出色,在小样本情况下ARMA往往比LSTM效果要好。关键字提取流程数据清洗,序列切分,序列平稳化关于LSTM输入序列,一般整理为3D张量,即[样本量,序列,数据]关于数据切分,为获得足够详尽的序列,一般采用滑动窗口切分,例如序列ABCD,窗口为2,预测一期,则序列划分为[[ABC][BCD]]其余参数设置可见BP神经网络教程划分数据集,测试集建立序列模型为模型添加适当的网络层,设计权重表达方式,正则化规则(或随机失效),激活函数定义损失函数,训练模式,提前停止机制模型训练模型检验应用提纲时间序列分析与LSTM原理LSTM进行时间序列预测实现LSTM实验前提准备系统准备:centos6.8、Spark 2.3.1、Pyrhon3.X,导入pandas,keras,numpy数据准备:标注普洱500指数。建模目的:训练时间序列模型对股票后期走势进行预测。实例:启动python,读取数据import numpy as np import pandas as pd from keras.models import Sequential from keras.layers import Dense from keras.layers import LSTM from keras.layers import Dropout import keras # 读取数据df = pd.read_csv(sp500.txt, header=None)? # type:pd.DataFrame data = np.array(df[0]) # 数据整理,假设通过50个历史数据预测未来一期,则先整理出训练数据集time_step = 50 sequence_length = time_step + 1 实例:序列拆分,平稳化result = [] # 获取全部可能序列# 序列平稳化,本例选用相对变化率,即 F(t)/F(0) - 1for x in range(len(df) - sequence_length): data_cut = data[x:x + sequence_length] # 平稳化 ? data_norm = [((x * 1.0 / (data_cut[0] + 1)) - 1) for x in data_cut] data_norm.append(data_cut[0]) result.append(data_norm) result = np.array(result) 实例:数据集划分# 随机打乱并划分训练集80%和测试集20%row = int(round(0.8 * result.shape[0])) train = result[:r

文档评论(0)

1亿VIP精品文档

相关文档