时间序列预测

这篇博客介绍了如何使用Python进行单变量时间序列预测,特别是针对气温数据。文章涵盖了数据加载、特征预处理、数据集划分、制作批量数据集、模型定义、训练以及预测等步骤。作者使用了由马克斯·普朗克生物地球化学研究所记录的天气时间序列数据集,并选择了5天的历史数据窗口来预测未来6小时的温度。模型训练使用了Keras库,数据预处理包括了特征的标准化。
摘要由CSDN通过智能技术生成

单变量时间序列预测

import tensorflow as tf

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import os
import pandas as pd

mpl.rcParams['figure.figsize'] = (8, 6)
mpl.rcParams['axes.grid'] = False

注:
1、mpl.rcParams[’’] 统一设置画布大小和不显示网格线。

加载数据集

zip_path = tf.keras.utils.get_file(
    origin='https://storage.googleapis.com/tensorflow/tf-keras-datasets/jena_climate_2009_2016.csv.zip',
    fname='jena_climate_2009_2016.csv.zip',
    extract=True)
csv_path, _ = os.path.splitext(zip_path)

df = pd.read_csv(csv_path)

df.head()
###
#	Date Time	p (mbar)	T (degC)	Tpot (K)	Tdew (degC)	rh (%)	VPmax (mbar)	VPact (mbar)	VPdef (mbar)	sh (g/kg)	H2OC (mmol/mol)	rho (g/m**3)	wv (m/s)	max. wv (m/s)	wd (deg)
#0	 00:10:00	996.52		-8.02		265.40		-8.90		93.3	3.33			3.11			0.22			1.94			3.12		1307.75			1.03		1.75			152.3
#1	 00:20:00	996.57		-8.41		265.01		-9.28		93.4	3.23			3.02			0.21			1.89			3.03		1309.80			0.72		1.50			136.1
#2	 00:30:00	996.53		-8.51		264.91		-9.31		93.9	3.21			3.01			0.20			1.88			3.02		1310.24			0.19		0.63			171.6
#3	 00:40:00	996.51		-8.31		265.12		-9.07		94.2	3.26			3.07			0.19			1.92			3.08		1309.19			0.34		0.50			198.0
#4	 00:50:00	996.51		-8.27		265.15		-9.04		94.1	3.27			3.08			0.19			1.92			3.09		1309.00			0.32		0.63			214.3
###

注:
1、本教程使用[由马克斯·普朗克生物地球化学研究所记录的天气时间序列数据集。
该数据集包含14个不同的特征,例如气温,大气压力和湿度。从2003年开始,每10分钟收集一次。为了提高效率,您将仅使用2009年至2016年之间收集的数据。数据集的这一部分由FrançoisChollet为他的《Python深度学习》一书准备。
2、os.path.splitext() 用于分离文件名和扩展名,返回(‘filename’, ‘.zip’)。

如上所示,每10分钟记录一次观察。这意味着在一个小时内,您将有6个观测值。同样,一天将包含144(6x24)次观察。

给定一个特定的时间,假设您要预测未来6小时的温度。为了做出此预测,您选择使用5天的观察时间。因此,您将创建一个包含最后720(5x144)个观测值的窗口以训练模型。许多这样的配置都是可能的,这使该数据集成为一个很好的实验对象。

下面的函数返回上述时间窗以供模型训练。该参数history_size是过去信息窗口的大小。这target_size是模型需要学习预测的未来时间。该target_size是需要被预测的标签。

def univariate_data(dataset, start_index, end_index, history_size, target_size):
  data = []
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值