keras进行时间序列预测

本文通过深度学习方法预测时间序列数据,以德国气象站记录的气温为例,介绍了数据预处理、基准方法、模型搭建及调优。采用GRU模型,通过增加dropout层和网络深度来防止过拟合,探讨了时间序列转化为监督学习问题的关键步骤。
摘要由CSDN通过智能技术生成

概述

用深度学习的方法进行端到端的时间序列预测需要一下几个步骤
1.对数据进行预处理,比如数据清洗,归一化等,然后把时间序列数据转化为监督问题数据。
2.进行基准方法的常识。基准方法可以选择基于常识的和基于简单机器学习的。
3.模型的搭建和与结果的对比
4.不断地调优模型

本文选用的例子为时间序列预测,数据集从这里下载,它由德国耶拿的马克思• 普朗克生物地球化学研究所的气象站记录。在这个数据集中,每10 分钟记录14 个不同的量(比如气温、气压、湿度、风向等),其中包含多年的记录。原始数据可追溯到2003 年,但本例仅使用2009—2016 年的数据。这个数据集非常适合用来学习处理数值型时间序列。我们将会用这个数据集来构建模型,输入最近的一些数据(几天的数据点),可以预测24 小时之后的气温。

数据集的预处理

首先用pandas去读取数据并可视化,分别画出全部样本和10天的温度状况

import os
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

lookback = 1440
step = 6
delay = 144
batch_size = 128

data_dir = ''
fname = os.path.join(data_dir, 'jena_climate_2009_2016.csv')
df = pd.read_csv(fname)
print(df.head())
temp = df["T (degC)"].values
#要转化类型
float_data = df.values[:,1:].astype(np.float64)


#可视化样本
fig = plt.figure()
ax = fig.add_subplot(211)
ax.plot(range(len(temp)), temp)
ax2 = fig.add_subplot(212)
ax2.plot(range(1440), temp[:1440])
plt.show()

在这里插入图片描述
对数据进行标准化

mean = float_data[:200000].mean(axis=0)
float_data -= mean
std = float_data[:200000].std(axis=0)
float_data /= std

然后很重要的一点,将数据转成监督学习的模式,如果样本数比较大,需要写生成器来进行操作,并对训练集和测试集、验证集进行划分。
参数

lookback = 1440
step = 6
delay = 144
batch_size = 128

本次训练是用前10天的数据预测1天后的数据(1个点),训练是采样频率为1小时,即6个点采一个,训练批量为128.即批量训练的数据为[128,144*10/6,14],标签为[128,1]

def generator(data, lookback, delay, min_index, max_index,
              shuffle=False, batch_size=
  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
进行keras时间序列预测的一般步骤如下: 1. 数据预处理:首先,我们需要对时间序列数据进行预处理。这包括数据清洗和归一化等步骤。对于时间序列预测,我们还需要将数据转化为监督问题数据。 2. 基准方法的选择:我们可以选择基于常识或基于简单机器学习方法的基准方法。这些方法可以用来与我们的模型结果进行比较。 3. 模型搭建和结果对比:接下来,我们需要建立一个适合我们时间序列预测问题的模型。在keras中,我们可以使用LSTM(长短期记忆)或者GRU(门控循环单元)等循环神经网络模型。建立好模型后,我们可以将其与基准方法的结果进行对比。 4. 模型调优:最后,我们可以通过不断调整模型的参数和结构来优化我们的模型。这可能包括调整神经网络的层数、隐藏层的大小、学习率等。通过不断优化模型,我们可以提高时间序列预测的准确性。 关于时间序列转监督化的过程,在keras中有两种常见的方法,一种是直接转化,另一种是使用生成器。对于超长时间序列,推荐使用生成器法。另外,还可以使用函数来实现序列转监督化,如在引用中提到的函数create_dataset。 作为一个实际的例子,我们可以使用德国耶拿的气象站记录的时间序列数据集进行时间序列预测。该数据集包含了多年的气象数据,包括气温、气压、湿度等。我们可以使用该数据集来构建模型,输入最近几天的数据点,来预测24小时后的气温。在处理数据集时,需要进行适当的预处理,例如选择特定的时间段,进行数据归一化等。 总结来说,进行keras时间序列预测的一般步骤包括数据预处理、基准方法选择、模型搭建和结果对比以及模型调优。同时,需要注意时间序列转监督化的过程,可以使用直接转化方法或生成器法。具体的实例中,我们可以使用德国耶拿的气象站记录的数据集进行时间序列预测
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值