【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

这篇具有很好参考价值的文章主要介绍了【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 引言


       密集连接网络和卷积神经网络都有主要的特点,那就是它们没有记忆。它们单独处理每个输入,在输入和输入之间没有保存任何状态。举个例子:当你在阅读一个句子的时候,你需要记住之前的内容,我们才能动态的了解这个句子想表达的含义。生物智能已渐进的方式处理信息,同时保存一个关于所处理内容的内部模型,此模型是根据过去额信息构建的,并随着新的信息进入不断更新。比如股票预测、气温预测等等。

一、mlp和RNN结构

      【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测             【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

 RNN特点:前部序列的信息经处理后,作为输入信息传递后部序列。

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

手写一下啦,本博主有点懒,懂了就阔以啦! 肯定权重是一样的。

二、不同的RNN结构

(1)多输入多输出,维度相同RNN结构

       应用:特定信息识别

结构如图:

                                                      【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

(2)多输入单输出

         应用:情感识别

          举例:I feel very happy.

          判断:positive

结构如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

(3)单输入多输出

         应用:序列数据生成

         举例:文章生成(输入标题直接出文章)

 结构如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

(4)多输入多输出(ij)

        应用:语言翻译

        举例:what is artificial intelligence?

        什么是人工智能?

 结构如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

 介绍了常见的RNN结构。但是这些结构在当前部序列信息在传递到后部的同时,信息权重下降,导致重要信息丢失。也称为(梯度消失)。由于这个问题接下来提出了长短期记忆网络(LSTM)。

三、长短期记忆网络(LSTM)

       【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测                     【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

通过传递前部序列信息,距离越远信息丢失越多(从彩色图可以很好的体现)。

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测 增加记忆细胞【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测,可以传递前部远处部位信息,且在传递过程中信息丢失少。

内部结构:【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

 忘记门:选择性丢弃【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测 中不重要的信息。

更新门:确定给记忆细胞添加哪些信息。

输出门:筛选需要输出的信息。

 结构如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

 在网络结构很深(很多层)的情况下,也能保留保留重要的信息;

解决了普通RNN求解过程中的梯度消失问题。

四、温度预测问题——神经网络基于GUR

数据集介绍:

 除了语言处理,其他许多问题中也都用到了序列数据。温度预测数据集,每十分钟记录14分不同的量(比如气温、气压、湿度、风向等)我们将利用2009-2016年的数据集构建模型,输入最近数据,预测24小时之后的气温。​​​​​​¶

(一)读入数据两种方式介绍:

(1)dataframe格式:

注意:

Initializing from file failed
由于文件中存在中文所以加后面engine='python'

data1=pd.read_csv('/data/jena_climate_2009_2016.csv',engine='python')

后续简单操作代码如下:转化成数组

data=data1.copy()
df=data.values
data=df[:,1:]
data
data = np.array(data, dtype=np.float64)#方便后面数据标准化

(2)str格式:

import os
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
data_dir='/data'
fname=os.path.join(data_dir,'jena_climate_2009_2016.csv')
f=open(fname)
data=f.read()
f.close()
lines=data.split('\n')
header=lines[0].split(',')
header

 后续简单操作代码如下:转化成数组

float_data=np.zeros((len(lines),len(header)-1))
for i,line in enumerate(lines):
    values=[float(x) for x in line.split(',')[1:]]
    float_data[i,:]=values

结果如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

补充 :enumerate()函数

英语翻译:就是枚举

names = ["Alice","Bob","Carl"]
for index,value in enumerate(names):
    print(f'{index}: {value}')

 看结果就懂了:

0: Alice
1: Bob
2: Carl

(二)分析数据,数据可视化 

from matplotlib import pyplot as plt
temp=data[:,1]
plt.plot(range(len(temp)),temp)#可以看出每年温度的周期性变化
#看完整体看局部前十天的温度变化
#首先呢每十分钟记录一个数据点,一天则可以记录144个数据点,则十天记录1440个数据点
plt.plot(range(1440),temp[:1440])#后面是冬季

结果如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测    【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

 (三)处理数据,可以输入RNN模型

(1) 首先数据预处理(将数据处理为神经网络可以处理的格式,由于已经是数值型的,所以不需要向量化)。
但是由于数据每个时间序列位于不同的范围所以我们需要对每个时间序列进行标准化,让他们在相似范围内都取较小的值。
我们采取200 000个时间作为训练数据。

mean=data[:200000].mean(axis=0)
print(mean)
std=data[:200000].std(axis=0)
print(std)
data_-=mean
data_/=std

 (2)提取序列数据

首先介绍Input_shape=(samples,time_steps,features)

举个例子:比如700个数据,我用8个数据去预测第九个数据:

[1 , 2 , . . . ,8]      ----9   ——

[2 , 3 , . . . ,9]      ----10 ——

[3 , 4 , . . . ,10]

.

and so on。                   —— n 代表samples     

time_steps=8

features:样本特征维数(自然语言处理十分重要 one-hot格式比如001对应三),这里数据是单维度则为1.

def extract_data(data,time_step):
    X=[]
    y=[]
    #0,1,2,3...,9:10个样本;time_step=8;0,1...7;2,3...8两个样本
    for i in range(len(data)-time_step):
        X.append([a for a in data[i:i+time_step]])
        y.append(data[i+time_step])
    X=np.array(X)
    #X=X.reshape(X.shape[0],X.shape[1],1)
    return X,y

五、单层lstm股票预测 

 (一)导包读入数据

%matplotlib inline
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
data_=pd.read_csv('/data/zgpa.csv',engine='python')
data_.head()

(二)数据预处理 

close=np.array(close,dtype=np.float64)
mean=close.mean(axis=0)
print(mean)
std=close.std(axis=0)
print(std)
close-=mean
close/=std

(三)时间序列数据可视化

#首先我们看一下收盘价格时间序列的趋势
close=data_['close']
close
plt.plot(range(len(close)),close)
plt.title('close price')

结果如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

(四)提取序列数据与上面一样

调用:

X,y=extract_data(close,time_step)
print(X[0,:,:])
print(y)

(五)建立单个LSTM模型

from keras.models import Sequential
from keras.layers import Dense,SimpleRNN
model=Sequential()
#add rnn layer
model.add(SimpleRNN(units=8,input_shape=(time_step,1),activation='relu'))
#add output layer
model.add(Dense(units=1,activation='linear'))
#configure the model
model.compile(optimizer='adam',loss='mean_squared_error')
model.summary()

结果如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

 (六)训练模型

y=np.array(y)
model.fit(X,y,batch_size=30,epochs=200)

结果如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

 (七)预测与真实可视化

y_train_predict=(model.predict(X)*std)+mean
y_train=(y*std)+mean
fig1=plt.figure(figsize=(8,5))
plt.plot(y_train,label='real price')
plt.plot(y_train_predict,label='predict price')
plt.title('close price')
plt.xlabel('time')
plt.ylabel('price')
plt.legend()
plt.show()

结果如图:

【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测文章来源地址https://www.toymoban.com/news/detail-423123.html

到了这里,关于【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习4. 循环神经网络 – Recurrent Neural Network | RNN

    目录 循环神经网络 – Recurrent Neural Network | RNN 为什么需要 RNN ?独特价值是什么? RNN 的基本原理 RNN 的优化算法 RNN 到 LSTM – 长短期记忆网络 从 LSTM 到 GRU RNN 的应用和使用场景 总结 百度百科+维基百科 卷积神经网络和普通的算法大部分都是输入和输出的一一对应,也就是一

    2024年02月11日
    浏览(31)
  • 深度学习-循环神经网络-RNN实现股价预测-LSTM自动生成文本

    基于文本内容及其前后信息进行预测 基于目标不同时刻状态进行预测 基于数据历史信息进行预测 序列模型:输入或者输出中包含有序列数据的模型 突出数据的前后序列关系 两大特点: 输入(输出)元素之间是具有顺序关系。不同的顺序,得到的结果应该是不同的,比如“

    2024年01月24日
    浏览(33)
  • 【深度学习笔记】6_2 循环神经网络RNN(recurrent neural network)

    注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 上一节介绍的 n n n 元语法中,时间步 t t t 的词 w t w_t w t ​ 基于前面所有词的条件概率只考虑了最近时间步的 n − 1 n-1 n − 1 个词。如果要考虑比 t − ( n − 1 ) t-(n-1) t −

    2024年03月12日
    浏览(50)
  • 【算法小记】深度学习——循环神经网络相关原理与RNN、LSTM算法的使用

    文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 卷积神经网络在图像领域取得了良好的效果,卷积核凭借优秀的特征提取能力通过深层的卷积操作可是实现对矩形张量的复杂计算处理。但是生活中除了图像这样天然以矩阵形

    2024年01月25日
    浏览(37)
  • Python深度学习026:基于Pytorch的典型循环神经网络模型RNN、LSTM、GRU的公式及简洁案例实现(官方)

    循环神经网络(也有翻译为递归神经网络)最典型的三种网络结构是: RNN(Recurrent Neural Network,循环神经网络) LSTM(Long Short-Term Memory,长短期记忆网络) GRU(Gate Recurrent Unit,门控循环单元) 理解参数的含义非常重要,否则,你不知道准备什么维度的输入数据送入模型 先

    2023年04月22日
    浏览(26)
  • 人工智能:CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的知识梳理

    卷积神经网络(CNN),也被称为ConvNets或Convolutional Neural Networks,是一种深度学习神经网络架构,主要用于处理和分析具有网格状结构的数据,特别是图像和视频数据。CNN 在计算机视觉任务中表现出色,因为它们能够有效地捕获和识别图像中的特征,具有平移不变性(transla

    2024年02月05日
    浏览(46)
  • 李宏毅机器学习笔记:RNN循环神经网络

    例如情景补充的情况,根据词汇预测该词汇所属的类别。这个时候的 Taipi 则属于目的地。但是,在订票系统中, Taipi 也可能会属于出发地。到底属于目的地,还是出发地,如果不结合上下文,则很难做出判断。因此,使用传统的深度神经网络解决不了问题,必须引入RNN。 如

    2024年02月10日
    浏览(37)
  • 【python,机器学习,nlp】RNN循环神经网络

    RNN(Recurrent Neural Network),中文称作循环神经网络,它一般以序列数据为输入,通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出。 因为RNN结构能够很好利用序列之间的关系,因此针对自然界具有连续性的输入序列,如人类的语言,语音等

    2024年01月18日
    浏览(26)
  • Pytorch 对比TensorFlow 学习:Day 17-18: 循环神经网络(RNN)和LSTM

    Day 17-18: 循环神经网络(RNN)和LSTM 在这两天的学习中,我专注于理解循环神经网络(RNN)和长短期记忆网络(LSTM)的基本概念,并学习了它们在处理序列数据时的应用。 1.RNN和LSTM基础: RNN:了解了RNN是如何处理序列数据的,特别是它的循环结构可以用于处理时间序列或连续

    2024年01月20日
    浏览(49)
  • 深度学习循环神经网络

    循环神经网络(Recurrent Neural Network,RNN)是一种广泛应用于序列数据、自然语言处理等领域的神经网络。与传统的前馈神经网络不同,循环神经网络的输入不仅取决于当前输入,还取决于之前的状态。这使得循环神经网络可以对序列数据进行建模,具有记忆和递归的能力。

    2024年02月13日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包