基于LSTM的多变量温度预测(python从入门到入坑)

一篇针对初学者的LSTM多变量温度预测教程,介绍了如何使用Python从数据预处理到构建LSTM模型的过程,包括Anaconda环境搭建、数据相关性分析、数据切分、模型训练及精度达到99%的预测结果。
摘要由CSDN通过智能技术生成

基于LSTM的多变量温度预测(python)

——我保证他能够运行,而且结果能够让你满意(如果你和我一样都是一个新手的话)

一、我为什么要写这些?

因为让人抓狂的课程大作业,我小组选择了一个多变量预测方面的课题,在我这个大三基本上还没接触过Python数据处理,甚至对神经网络什么的都只是仅限于听过的情况下,这个东西简直难如登天。

然后值得高兴的是网上有很多现成的值得快速模拟入门的代码,但是令人痛苦的是:杂乱无章而且缺乏解释,最后得出的结果也不能说明问题(结果很糟糕,不知道是什么原因)。

因此,我集网上多变量实例代码,结合自己的浅薄之见,做出如下总结,同时也是方便提醒自己——毕竟一星期速成的东西…希望能够支持我完成课程作业。

二、具体做了什么?

结合了多方经验,主要有

  • B站唐国梁老师的——TensoFlow2基于LSTM多变量共享单车使用预测(通过这个我快速入门了一些概念)
  • 本文链接:https://blog.csdn.net/weixin_39653948/article/details/105927085(tf.keras 11: 时间序列预测之LSTM天气预测)网上大部分都是这个示例
  • 以及该文章-本文链接:https://blog.csdn.net/weixin_38346042/article/details/119983658(基于LSTM温度时间序列预测,较于上面那个例子更深入,对特征进行了一些筛选)

然后我根据这些大佬的例子结合一些粗浅的理解——

  1. 学会使用Anaconda(下载python库的)和Jyputer(允许单步执行代码块)
  2. 通过python强大的绘图,肉眼扫描提取相关性特征(最有可能影响温度变化的东西)
  3. 实现了从零到有切分处理csv数据集
  4. 单手建立一个啥参数都不调的(或者叫照抄)的神经网络结构3层LSTM——单手是因为我使用cv大法的时候在吃东西
  5. 成功训练出了一个利用前3小时数据,精确预测下一小时温度的模型,精度达到了99%(可能是因为时间跨度短,我还不懂,不过确实能运行出结果了)
    在训练集上的预测值和真实值结果曲线图片

三、源代码切块加注释,恳请批评指正(●’◡’●)ノ

PS:代码是在Jyputer上运行的,使用的库是利用Anaconda下载的
如果有知道这个的小可爱,建议去知道一下,不要乱copy代码然后没有库然后在配置的时候因为tensorflow和python版本问题,相关库更新问题,还有莫名其妙的报错而愤怒摔键盘。

1. block1导入相关包

import tensorflow as tf
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import os
import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import r2_score
from tensorflow.keras import utils,losses,layers,Sequential
from tensorflow.keras.callbacks import ModelCheckpoint,TensorBoard

2.读取csv数据集,搜索jena_climate_2009_2016数据集,需要的自己去下载

data_path="D:\WorkSpace\jena_climate_2009_2016.csv"
dataset=pd.read_csv(data_path,parse_dates=['Date Time'],index_col=['Date Time'])

dataset.shape#输出数组形状(420551, 14)(行,列)
dataset.tail()#输出尾5个列
dataset.head()#数据结构如下,输出头5个列
dataset.info()

在这里插入图片描述

3.画图看相关性,提取有效特征集

#肉眼观察法————下面三块可以不要
plt.figure(figsize=(16,8))
#作图辅助库
sns.lineplot(x='p (mbar)',y='T (degC)',data=dataset[:10000])
plt.show()

plt.figure(figsize=(16,8))
sns.lineplot(x='Tdew (degC)',y='T (degC)',data=dataset[:10000])
plt
### 回答1: Python LSTM变量预测是指使用Python编写LSTM(长短期记忆神经网络)算法来进行多个变量预测LSTM算法是一类特殊的神经网络,可以对时间序列数据进行建模,并且能够很好地捕捉到数据之间的长期依赖关系。 在Python中,可以通过使用Tensorflow、Keras、PyTorch等深度学习框架来构建LSTM模型。多变量预测需要输入多个变量,如时间、气温、湿度、气压等。这些变量需要先进行数据预处理,包括缺失值填充、归一化处理、数据平滑等。 在构建多变量LSTM模型时,需要注意的是输入数据应该具有良好的平稳性,即具有稳定的均值和方差,并且需要进行训练和测试集的划分,防止模型过拟合。 预测结果可以通过绘制时间序列图来进行可视化展示,并且可以使用各种性能指标来评估预测准确度,如均方根误差(RMSE)、平均绝对误差(MAE)等。 总之,Python LSTM变量预测是一种有效地处理时间序列数据并预测多个变量的方法,具有广泛的应用价值。 ### 回答2: Python中的LSTM模型是深度学习在时序预测中的常用方法。它可以用于多个变量预测。多变量预测模型需要输入和输出的变量保持一致,以便进行有效的训练和预测。 为构建多变量预测模型,需要对数据进行预处理和特征工程。预处理过程包括数据清洗、缺失值处理和变量标准化等步骤。在特征工程中,需要提取有效的特征,例如滞后特征和移动平均特征。提取好的特征可以应用到多变量LSTM预测模型中。 对于多变量LSTM预测模型,需要将输入的数据分为多个特征组件和一个输出组件。每个组件都是一个特定的变量或特征。在模型训练中,需要将每个组件独立训练。在预测时,需要将各个组件合并起来来得到最终的预测值。 要正确设置LSTM模型的超参数,并进行自适应优化,以便获得更好的预测结果。如果调整不当,可能会导致模型过拟合或欠拟合,影响预测效果。 总之,多变量预测LSTM模型是一种强大的工具,可以解决各种时序预测问题。它需要合理的数据预处理、特征提取和模型调整,以获得最佳的预测效果。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码之狐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值