交通流预测爬坑记(二):最简单的LSTM预测交通流,使用tensorflow2实现

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

说到时间序列预测,我想一定首先想到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
评论 28
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值