说到时间序列预测,我想一定首先想到RNN,然后想到LSTM,LSTM原理就不说了,网上有很多相关文章。
下面使用tensorflow2.0来实现预测
不得不说tensorflow2.0 太香了,太简单了,真的是有手就行
在tensorflow中只需要调用已经tensorflow的LSTM模块就行了,比如下面的代码
from tensorflow.keras.layers import Dense,LSTM,Dropout
model = tf.keras.Sequential([
LSTM(80, return_sequences=True),
Dropout(0.2),
LSTM(80),
Dropout(0.2),
Dense(1)
])
model.compile(optimizer='adam',
loss='mse',)
这样就创建了一个2层LSTM,每层80个神经元的;同时添加了Droopout函数防止过拟合;使用adam激活函数;使用mse作为损失误差的神经网络。真的炒鸡简单。
主要问题是数据的处理,要做时间序列预测,原理应该是使用前n个时间去预测下一个时间,也就是所模型训练的数据应该是下面这个图这样的数据
所以处理数据才是困难的地方。
下面我使用的数据是在上一个文章中提到的英国站点数据。其他的数据也是大同小异。
百度网盘: https://pan.baidu.com/s/19vKN2eZZPbOg36YEWts4aQ
密码 4uh7
在导入数据时,不知道为什么如果有标红的这一列,就会提示错误,所以我把这个数据直接删了,这列数据对预测也没有影响

然后通过下面代码就可以得到一个包含,日期、流量的的数据
f = pd.read_csv('..\Desktop\AE86.csv')
# 从新设置列标
def set_columns():
columns = []
for i in f.loc[2]:
columns.append(i.strip())
return columns
f.columns = set_columns()
f.drop([0,1,2], inpl

本文介绍了如何使用tensorflow2.0构建一个简单的LSTM模型预测交通流。作者强调tensorflow2.0的易用性,并分享了处理时间序列数据的难点,如按时间步长(time_step=5)划分数据。文中提供了数据来源,提到了数据预处理步骤,包括删除无关列和数据归一化。最后,概述了模型构建、训练、预测和评估的基本流程。
最低0.47元/天 解锁文章
441





