news 2026/4/16 7:46:56

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/4/16 7:46:33

DeepSeek-V3-0324震撼发布:数学推理能力飙升19.8%

DeepSeek-V3-0324震撼发布:数学推理能力飙升19.8% 【免费下载链接】DeepSeek-V3-0324 DeepSeek最新推出DeepSeek-V3-0324版本,参数量从6710亿增加到6850亿,在数学推理、代码生成能力以及长上下文理解能力方面直线飙升。 项目地址: https://…

作者头像 李华
网站建设 2026/4/14 23:41:22

集星獭 | 一键注册 SAP RFC 接口的集成利器

概要介绍 多数企业采用 “SAP 专业业务系统” 架构,SAP 负责财账管理,采购、生产等业务由专业系统精细化运营,跨系统物料出入库、收货过账等数据的实时同步已成为业务协同刚需。而 SAP 原生 RFC 接口调用因技术门槛高、开发周期长、运维难度…

作者头像 李华
网站建设 2026/4/15 19:57:57

花生剥壳机结构设计

2 刮板式花生脱壳机的结构及工作原理 2.1 选择刮板花生脱壳机的理由 目前的花生脱壳机会出现其脱壳效率和破损率较大,性能不佳,对环境的适应能力较差等问题,为解决这一问题可以采用优良的技术方案设计脱壳机,新型的设备应该结合挤…

作者头像 李华
网站建设 2026/4/11 12:48:35

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

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

作者头像 李华
网站建设 2026/4/15 18:02:45

DeepSeek-OCR:开源大模型如何突破视觉文本压缩极限?

DeepSeek-OCR:开源大模型如何突破视觉文本压缩极限? 【免费下载链接】DeepSeek-OCR DeepSeek-OCR是一款以大语言模型为核心的开源工具,从LLM视角出发,探索视觉文本压缩的极限。 项目地址: https://ai.gitcode.com/hf_mirrors/de…

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

拼多多API应用:社交分享驱动销量飙升!

在当今社交电商时代,拼多多凭借其独特的社交分享机制,成为电商领域的佼佼者。其开放平台提供的API(应用程序接口)允许开发者轻松集成社交分享功能,从而通过好友互动、病毒式传播显著提升商品销量。本文将详细介绍拼多多…

作者头像 李华