郭震 AI公众号:郭震AI

28 Keras框架在实际项目中的应用:时间序列预测

发布日期:

最近更新:

分类: Keras

预计阅读: 3 分钟

阅读次数: 0

系列进度

Keras 入门 · 第 28 / 28

预计阅读3 分钟
结构重点8 个
图文要点6 张
正文规模1.2k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 8 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

时间序列预测流程图查看大图
时间序列预测流程图

时间序列预测最怕时间泄露。构造窗口、切分数据和回测方式,都必须尊重时间顺序。

时间序列预测实操核对图查看大图
时间序列预测实操核对图

我会用滚动验证检查模型。随机切分在时间序列里经常过于乐观,不能直接当作上线依据。

时间序列预测是机器学习中的一个重要应用领域,尤其是在金融、气象、能源等领域。本文将介绍如何使用Keras框架对时间序列数据进行预测,帮助大家更好地理解时间序列预测的流程与实现方法。

理解时间序列数据

时间序列数据是以时间为索引的一系列数据点,通常用来表示某一现象或事物随时间变化的趋势。在时间序列预测中,我们的目标是根据已知的历史数据来预测未来的值。

典型的时间序列数据可包括股市价格、天气温度等。例如,假设我们有一组股票的日收盘价数据,我们希望根据过去的价格来预测未来几天的价格。

数据准备

在进行时间序列预测之前,我们需要先准备数据。以股票价格为例,我们可以使用 pandas 库读取 CSV 文件中的数据。以下是数据准备的代码示例:

import pandas as pd

# 读取数据集
data = pd.read_csv('stock_prices.csv')

# 将日期列设置为索引并转换为日期格式
data['Date'] = pd.to_datetime(data['Date'])
data.set_index('Date', inplace=True)

# 选取需要预测的列
prices = data['Close']

数据预处理

在Keras中,处理时间序列数据时通常需要对数据进行规范化、分割为训练集和测试集,并将数据转换为模型可接受的格式。这里我们用 MinMaxScaler 进行规范化。

from sklearn.preprocessing import MinMaxScaler
import numpy as np

# 规范化数据
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_prices = scaler.fit_transform(prices.values.reshape(-1, 1))

# 创建训练集和测试集
train_size = int(len(scaled_prices) * 0.8)
train, test = scaled_prices[0:train_size], scaled_prices[train_size:]

# 创建数据集函数
def create_dataset(data, time_step=1):
    X, Y = [], []
    for i in range(len(data) - time_step - 1):
        X.append(data[i:(i + time_step), 0])
        Y.append(data[i + time_step, 0])
    return np.array(X), np.array(Y)

# 定义时间步长
time_step = 10
X_train, y_train = create_dataset(train, time_step)
X_test, y_test = create_dataset(test, time_step)

# 将数据形状重塑为 [样本数, 时间步长, 特征数]
X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], 1)
X_test = X_test.reshape(X_test.shape[0], X_test.shape[1], 1)

构建LSTM模型

Keras框架非常适合实现深度学习模型,特别是对于处理序列数据的 LSTM(长短期记忆)模型。接下来,我们将构建一个LSTM模型,以进行时间序列预测。

from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout

# 建立LSTM模型
model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(X_train.shape[1], 1)))
model.add(Dropout(0.2))
model.add(LSTM(50, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(25))
model.add(Dense(1))

# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')

训练模型

模型建立完成后,我们可以开始训练模型。通常情况下,我们会将数据分为训练集和验证集,以便监控过拟合。

Keras框架在实际项目中的应用:时间序列预要点判断卡查看大图
Keras框架在实际项目中的应用:时间序列预要点判断卡

读这篇时,可以把「理解时间序列数据 -> 数据准备 -> 数据预处理 -> 构建LSTM模型」当成一条检查线:先抓住对象、动作和判断依据,再回到案例、代码或指标里复查。

# 训练模型
model.fit(X_train, y_train, batch_size=32, epochs=100, validation_split=0.2)

进行预测

一旦模型训练完成,我们就可以使用 test 数据集进行预测。预测的结果需要进行反规范化,以便与实际值进行比较。

# 预测
train_predict = model.predict(X_train)
test_predict = model.predict(X_test)

# 反规范化
train_predict = scaler.inverse_transform(train_predict)
test_predict = scaler.inverse_transform(test_predict)

# 计算RMSE
import math
from sklearn.metrics import mean_squared_error

train_score = math.sqrt(mean_squared_error(y_train, train_predict[:,0]))
print(f'Train RMSE: {train_score:.2f}')

test_score = math.sqrt(mean_squared_error(y_test, test_predict[:,0]))
print(f'Test RMSE: {test_score:.2f}')

可视化预测结果

最后,我们可以将预测结果进行可视化,使用 matplotlib 库来展示模型的预测效果。

Keras阅读地图卡查看大图
Keras阅读地图卡

读《Keras框架在实际项目中的应用:时间序列预测》时,可以先看配图里的任务、概念、练习和判断点,再回到正文补细节。这样更容易判断这篇内容能放到哪个真实场景里。

import matplotlib.pyplot as plt

# 可视化
plt.figure(figsize=(12, 6))
plt.plot(prices.index, prices.values, label='真实价格')
# 获取预测索引
train_index = prices.index[:len(train_predict)]
test_index = prices.index[len(train_predict) + (time_step + 1):]

plt.plot(train_index, train_predict, label='训练集预测')
plt.plot(test_index, test_predict, label='测试集预测')
plt.legend()
plt.show()
Keras框架在实际项目中的应用:时间序列预测应用复盘卡查看大图
Keras框架在实际项目中的应用:时间序列预测应用复盘卡

读到这里,可以把《Keras框架在实际项目中的应用:时间序列预测》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

Keras框架在实际项目中的应用:时间序列预测应用检查卡查看大图
Keras框架在实际项目中的应用:时间序列预测应用检查卡

读完《Keras框架在实际项目中的应用:时间序列预测》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

总结

通过上述案例,我们使用Keras框架成功地实现了时间序列预测。这一过程包括数据准备、模型构建、训练和预测等步骤。LSTM模型有效地捕捉了时间序列数据中的长期依赖关系,实现了对未来值的预测。

在实际项目中,时间序列预测的应用非常广泛,可以根据特定的领域需求调整模型与预处理方法。希望本文能够帮助您更好地理解Keras在时间序列预测中的应用,并激发您在实际项目中的探索与实践。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

Keras框架在实际项目中的应用:时间序列预测适合谁读?

这是 Keras 入门 系列第 28 / 28 篇,适合正在学习Keras 入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇Keras 入门教程要多久?

按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...