PM2.5数据集LSTM时序预测python3代码

本文利用UCI数据集中的PM2.5空气质量数据,通过将时间序列转化为监督学习问题,使用Keras和Tensorflow训练单层LSTM网络进行预测。实验包括数据归一化、特征选择、数据集划分、模型训练和预测,最终通过MAE和RMSE评估模型性能。
摘要由CSDN通过智能技术生成

数据集说明

本实验采用的PM2.5空气质量数据集来自UCI公共数据集网站,包含了一系列与空气质量有关的天气数据,此数据集为多变量时间序列,每个记录的间隔为一小时,实例数量为43824条,其中前24条未在数据集中使用。该数据集是从2010年初到2014年底收集的美国驻华使馆的空气质量数据,在此实验中选择了具有实值的43800条作为实验数据,预测的因变量值为PM2.5这个属性。

主要步骤

实验过程主要分为以下几步:

  1. 读取数据文件。
  2. 时间序列数据转化为监督学习问题,并进行数据归一化。
  3. 去除在本实验中无用的列。
  4. 数据集分为测试集和训练集,以及验证集。
  5. Keras与tensorflow训练单层LSTM网络。
  6. 用测试集进行预测。
  7. 数据反归一化。
  8. MAE (Mean Absolute Error,平均绝对误差)与RMSE(Root Mean Squared Error, 均方根误差)对训练集的预测结果进行评估。
  9. 通过图像与真实值的曲线作对比。

环境

Keras:2.3.1, Tensorflow:2.1.0,python3.7

全部代码

//都是机器学习常用最新的工具包
from math import sqrt
from numpy import concatenate
from matplotlib import pyplot
from pandas import read_csv
from pandas import DataFrame
from pandas import concat
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM

转化为监督数据

def series_to_supervised(data, n_in=1, n_out=1, dropnan=True):
	n_vars = 1 if type(data) is list else data.shape[1]
	df = DataFrame(data)
	cols, names = list(), list()
	for i in range(n_in, 0, -1):
		cols.append(df.shift(i))
		names += 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值