Skip to content

基于 LSTM 的气温预测及可视化 (Temperature prediction and visualization based on LSTM Project)

Notifications You must be signed in to change notification settings

xiaocuia/weather-predict

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

weather-predict

基于 LSTM 的气温预测及可视化 (Temperature prediction and visualization based on LSTM Project)

数据爬取

通过使用python所提供的bs4工具类,我们从中国天气网站上爬取到了北京、上海、广州、郑州4个城市从2011年到2021年共十年间的3652条数据,每条数据包括日期、天气、温度(分为最高温度和最低温度)、和风向,其中我们主要针对温度进行数据分析和预测:

算法过程

对于我们的项目而言,我们直接使用过去的温度数据对未来进行预测,输入的特征维度为1,我们计划在每个小批量中,使用过去5天的数据来预测下一天的数据,故数据的维度为(batch_size, dimension),而由于循环神经网络要求输入为时间序列,我们需要将数据的格式转变为(batch_size, 1, dimension)。然后通过引入Python内置的Dataset数据集类作为工具,划分小批量,然后根据给定的比率拆分训练集、测试集,最终可供算法模型进行训练。过程如下图:

image

算法设计

通过利用LSTM时间序列的特性,我们就可以非常方便地处理序列数据。而温度数据以时间为轴适中连续排列,正符合这一特点,我们将清洗过的数据转变维度之后直接按小批量输入到LSTM网络中进行训练,通过不断地再每轮(epoch)训练中进行梯度下降计算,并不断打印出当前的损失函数值(Train Loss),使得模型最终可以实现收敛。 由于LSTM网络最终输出的为一个向量,而我们最终需要一个整数类型(与原始数据保持一致)的温度,所以我们需要对LSTM算法模型的输出后插入一个线性回归作为稠密层,将输出维度转换成最终1维的向量(温度)。

实验效果

image

About

基于 LSTM 的气温预测及可视化 (Temperature prediction and visualization based on LSTM Project)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%