基于LSTM的共享单车需求预测研究

摘要:共享单车作为城市绿色出行的重要方式,其需求量的准确预测对运营调度和资源配置具有重要意义。本文基于UCI共享单车数据集,研究了基于长短期记忆网络(LSTM)的骑行需求预测方法。

项目方案:基于LSTM的共享单车需求预测研究

项目简介

基于PyTorch构建LSTM模型,利用24小时滑动窗口对共享单车骑行需求进行时序预测,并与SVR、随机森林、RNN、GRU进行对比实验。

系统概述

共享单车作为城市绿色出行的重要方式,其需求量的准确预测对运营调度和资源配置具有重要意义。本文基于UCI共享单车数据集,研究了基于长短期记忆网络(LSTM)的骑行需求预测方法。

我们对17379条小时级骑行数据进行探索性分析,揭示了骑行量与季节、时段、天气等因素的关联规律。在数据预处理阶段,采用独热编码处理类别特征,对连续特征进行Z-score标准化,并严格按时间顺序划分训练集、验证集和测试集,避免数据泄露。采用24小时滑动窗口构造时间序列样本,使模型能够学习骑行量的日周期变化模式。

在模型构建方面,基于PyTorch框架设计了三层LSTM网络(128-64-32),结合批归一化和Dropout正则化防止过拟合,并引入早停机制和学习率自适应调度策略优化训练过程。同时,将LSTM与支持向量回归(SVR)、随机森林、基础RNN和GRU四种模型进行对比实验。

实验结果表明,LSTM模型在总骑行人数预测上取得了R2=0.8939、RMSE=61.21的最优表现,显著优于SVR(R2=0.5824)和随机森林(R2=0.7659)等传统机器学习方法,同时在临时用户和注册用户的预测上也均优于其他对比模型。结果验证了LSTM在共享单车需求时序预测任务中的有效性和优越性。

系统架构

数据预处理(独热编码+Z-score标准化+滑动窗口)→ 三层LSTM网络(128-64-32)训练与预测 → 多模型对比评估(R2/RMSE/MAE)

项目结构

项目包含4个Python脚本:visualization.py(探索性数据分析)、LSTM-model.py(数据预处理与LSTM模型训练)、LSTM-predict.py(模型预测与评估)、comparison.py(多模型对比实验),数据存放于data/,中间文件存放于database/,输出结果存放于result/。

目录结构

核心模块

数据经独热编码、Z-score标准化(仅用训练集统计量)和24小时滑动窗口构造为三维序列,输入三层LSTM(128→64→32,含BatchNorm+Dropout),以Adam+早停+学习率衰减训练,预测cnt/casual/registered三个目标并以R²/RMSE/MAE评估,最后与SVR、随机森林、RNN、GRU四个基线模型进行对比实验。

快速开始

依次运行python visualization.py进行数据探索,python LSTM-model.py完成预处理与模型训练,python LSTM-predict.py加载模型预测评估,python comparison.py执行多模型对比实验,所有图表和模型自动保存至result/目录。

环境要求

Python 3.8+,依赖torch、numpy、pandas、matplotlib、seaborn、scikit-learn,支持CUDA GPU加速,无GPU时自动使用CPU。

运行实验

依次运行visualization.py、LSTM-model.py、LSTM-predict.py、comparison.py,即可完成从数据探索、模型训练、预测评估到多模型对比的全部实验流程。

查看结果

所有输出图表和模型权重保存在result/目录下,包括EDA可视化、损失曲线、预测对比图和多模型对比图表

实验结果

实验结果保存在result/目录,包含LSTM模型权重model.pth及15张可视化图表(EDA分析10张、训练损失曲线1张、预测对比图1张、模型对比图3张)

结果展示

运行LSTM-model.py

图1 模型损失函数图像

运行LSTM-predict.py

图2 预测值与真实值对比图

运行comparison.py

图3 模型对比_cnt指标柱状图

图4 模型对比_R2热力图

图5 模型对比_预测曲线

运行visualization.py

图6 风速-骑行人数

图7 工作日与休息天每小时骑行人数统

图8 热力图

图9 日期-骑行人数图

图10 湿度-骑行人数图

图11 四季中每小时骑行人数统计

图12 体感温度-骑行人数图

图13 温度-骑行人数图

图14 月份-骑行人数图

图15 注册与临时用户一天中每小时骑行人数图

结果点评

LSTM模型在共享单车需求预测任务中表现优异,通过24小时滑动窗口有效捕捉了骑行数据的日周期规律;EDA分析揭示了温度与骑行人数呈正相关、高湿度和强风速抑制骑行需求、工作日呈现明显的早晚高峰双峰模式等关键特征;训练损失曲线平稳收敛且训练集与验证集差距较小,说明模型未出现严重过拟合;对比实验中LSTM在R²、RMSE、MAE三项指标上均优于SVR、随机森林、RNN和GRU,验证了深度序列模型在时序预测任务上的优势,其中传统机器学习模型因无法建模时序依赖关系表现相对较弱,而GRU作为LSTM的简化变体也取得了接近的效果。

项目资源

包括完整的项目源代码、演示视频、运行截图,开箱即用。

关于项目

本项目基于PyTorch和UCI共享单车数据集(17379条),通过独热编码、Z-score标准化和24小时滑动窗口构造序列输入,采用三层LSTM(128→64→32)预测骑行需求,并与SVR、随机森林、RNN、GRU进行对比,结果表明LSTM在R²/RMSE/MAE指标上均表现最优。。

项目背景

共享单车作为城市绿色出行的重要方式,其需求受天气、时段、季节等多因素影响且呈现复杂的非线性时序特征,准确预测骑行需求对运营商合理调度车辆、减少资源浪费具有重要意义,传统统计方法难以捕捉长期时序依赖关系,而LSTM凭借其门控机制在时间序列建模上具有天然优势,因此本项目采用LSTM构建共享单车需求预测模型。

作者信息

作者:Bob (张家梁)

原创声明:本项目为原创作品

相关推荐
byte轻骑兵5 分钟前
时序数据库选型指南:Apache IoTDB 社区版实践与踩坑
数据库·人工智能·apache·时序数据库·iotdb
逐梦苍穹7 分钟前
DeepInfer 推理框架源码精讲:逐行读 DeepSeek 开源的推理引擎(2 小时 20 分视频+文字版)
人工智能·开源·ai编程·deepseek·claudecode·deepinfer·deepseekinfer
水如烟11 分钟前
孤能子视角:微软宕机是“极化”在数字基础设施层的显影——效率驱动下强关系集中到单一节点,弱关系备份被淘汰,可折返性丧失
人工智能
芯门27 分钟前
GitHub「用好 AI」工具生态全景:2409 个仓库 Star 排行调研(2026-11)
人工智能·github
lucas_AI1 小时前
RAG 给你的答案,其实先「筛」过了你的证据——这个工具把黑箱拆开给你看
人工智能
江湖有缘2 小时前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
lucas_AI2 小时前
Claude Code 的「项目经理」上班了:协调器主动汇报,并行 AI 工人不等你催
人工智能
zhaoshuzhaoshu2 小时前
NPU(神经网络处理单元)详细解析
人工智能
在所不辞兄2 小时前
为什么在新能源汽车电驱与热管理开发中,AI驱动的数字孪生和数据驱动仿真正在部分替代对物理台架与实车标定的依赖?
人工智能·深度学习·神经网络·算法·机器学习
Flynn Liang2 小时前
LLM 应用安全:Prompt 注入、越权与输入输出护栏
java·人工智能·大模型·langchain4j·llm 安全·prompt 注入·guardrail