news 2026/7/5 9:41:31

LSTM回归预测:多变量输入,单输出实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LSTM回归预测:多变量输入,单输出实战

LSTM回归预测,多变量输入,单输出。 直接替换数据就可以使用,不需要对程序大幅修改。 程序内有详细注释,便于理解程序运行。 想要点击加好友! 程序可以出真实值和预测值对比图,线性拟合图,可以打印多种评价指标,方便对比分析。

在数据分析与预测的领域中,LSTM(长短期记忆网络)因其对时间序列数据中长短期依赖关系的卓越捕捉能力,备受青睐。今天咱们就来聊聊多变量输入、单输出的LSTM回归预测,而且我会给出一个拿来就能用,稍微替换数据就行的代码示例,里面注释详细,包你轻松理解。文末还有小彩蛋,想要一起交流学习,点击加好友哦!

环境与数据准备

咱们先导入必要的库,像numpy用于数值计算,pandas处理数据,matplotlib绘图,以及tensorflow中的keras搭建LSTM模型。

import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from keras.models import Sequential from keras.layers import LSTM, Dense from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

假设我们的数据存在一个CSV文件里,文件名为data.csv,数据格式如下:有多列自变量(特征),最后一列为因变量(我们要预测的目标值)。我们用pandas读取数据。

data = pd.read_csv('data.csv') features = data.drop('target_column', axis = 1) target = data['target_column']

数据预处理

为了让LSTM模型更好地学习,我们需要对数据进行归一化处理。这里使用MinMaxScaler将数据缩放到[0, 1]区间。

scaler_features = MinMaxScaler(feature_range=(0, 1)) scaler_target = MinMaxScaler(feature_range=(0, 1)) features_scaled = scaler_features.fit_transform(features) target_scaled = scaler_target.fit_transform(target.values.reshape(-1, 1))

接下来,我们要把数据转换成LSTM模型能接受的输入格式。LSTM模型期望输入的数据是三维的,维度分别是[样本数, 时间步长, 特征数]。假设我们设定时间步长为time_steps

time_steps = 30 X, y = [], [] for i in range(len(features_scaled) - time_steps): X.append(features_scaled[i:i + time_steps]) y.append(target_scaled[i + time_steps]) X = np.array(X) y = np.array(y)

搭建LSTM模型

现在开始搭建简单的LSTM模型,这里就一个LSTM层,然后接一个全连接输出层。

model = Sequential() model.add(LSTM(50, return_sequences=False, input_shape=(time_steps, features.shape[1]))) model.add(Dense(1)) model.compile(optimizer='adam', loss='mse')

LSTM层里,50是隐藏单元的数量,returnsequences=False表示我们只返回最后一个时间步的输出,因为我们做的是单输出预测。inputshape则指定了输入数据的形状,也就是(时间步长, 特征数)

模型训练与预测

训练模型很简单,调用fit方法就行。

model.fit(X, y, epochs=50, batch_size=64, verbose=1) # 预测 predicted = model.predict(X)

数据逆归一化与评估

预测完了,我们要把数据还原到原始尺度,这样才能计算真实的评价指标和绘图。

predicted = scaler_target.inverse_transform(predicted) y_actual = scaler_target.inverse_transform(y) # 计算评价指标 mse = mean_squared_error(y_actual, predicted) mae = mean_absolute_error(y_actual, predicted) r2 = r2_score(y_actual, predicted) print(f'Mean Squared Error: {mse}') print(f'Mean Absolute Error: {mae}') print(f'R2 Score: {r2}')

绘图展示

最后,我们绘制真实值和预测值对比图以及线性拟合图,直观看看模型的预测效果。

plt.figure(figsize=(12, 6)) plt.plot(y_actual, label='Actual') plt.plot(predicted, label='Predicted') plt.title('Actual vs Predicted') plt.xlabel('Time') plt.ylabel('Value') plt.legend() plt.show() plt.figure(figsize=(8, 6)) plt.scatter(y_actual, predicted) plt.plot([y_actual.min(), y_actual.max()], [y_actual.min(), y_actual.max()], 'k--', lw=2) plt.xlabel('Actual') plt.ylabel('Predicted') plt.title('Linear Fit') plt.show()

这样,一个完整的多变量输入、单输出的LSTM回归预测就完成啦!是不是还挺简单的?如果你在使用过程中有任何问题,或者想一起探讨更多有趣的机器学习项目,点击加好友,咱们一起交流呀!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 11:08:32

Open-AutoGLM安装不完全手册,资深架构师不愿透露的4大秘诀

第一章:Open-AutoGLM推理引擎框架概述Open-AutoGLM 是一个面向通用语言模型自动推理的高性能引擎框架,专为支持复杂逻辑推导、多跳问答与自主任务分解而设计。其核心目标是通过模块化架构提升大语言模型在实际应用场景中的推理可控性与执行效率。架构设计…

作者头像 李华
网站建设 2026/7/4 11:07:28

Open-AutoGLM点咖啡实战指南(从零搭建AI点单系统)

第一章:Open-AutoGLM点咖啡实战指南概述在人工智能与物联网融合发展的当下,Open-AutoGLM 作为一款开源的自动语言生成模型框架,正逐步应用于生活服务自动化场景。本章聚焦于其在“点咖啡”这一典型高频需求中的实际落地应用,展示如…

作者头像 李华
网站建设 2026/7/4 11:07:57

Agentic AI可靠性工程实践,确定性工具与探索性Agent的平衡

Erickson认为,当我们将代理式AI视为真实运营系统之上的一个抽象层,而不是完全替代这些系统时,它才会变得真正有价值。模型可以理解问题、检索证据、分类情况并提出行动建议,而确定性系统则负责执行操作、强制执行约束,…

作者头像 李华
网站建设 2026/7/4 11:08:33

2025年吉林大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年吉林大学计算机考研复试机试真题 2025年吉林大学计算机考研复试上机真题 历年吉林大学计算机考研复试上机真题 历年吉林大学计算机考研复试机试真题 更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream N 诺 DreamJudge 题库&#xff1…

作者头像 李华
网站建设 2026/7/4 11:08:31

视频融合平台EasyCVR赋能旅游景区构建全场景可视化监控新体系

EasyCVR视频融合平台凭借其多协议兼容、全终端适配、智能化分析等核心优势,为旅游景区打造了一套全场景、一体化的视频监控解决方案,助力景区实现“安全可控、服务提质、运营高效”的数字化目标。一、 旅游景区管理面临的核心痛点设备与协议碎片化&#…

作者头像 李华
网站建设 2026/7/3 9:58:48

从源码编译到推理验证:Open-AutoGLM安装全过程详解

第一章:Open-AutoGLM推理引擎框架概述Open-AutoGLM 是一个面向通用语言模型自动推理任务的高性能开源引擎框架,专为支持复杂逻辑推理、多跳问答与程序生成等高级自然语言处理场景而设计。该框架融合了符号推理与神经网络推断的优势,通过模块化…

作者头像 李华