当前位置: 首页 > news >正文

共享单车需求预测:时间特征工程 + 随机森林,R² 达到 0.931

属性内容
链接bike-sharing-demand-randomforest-time-features
摘要基于 UCI Bike Sharing 数据集,通过高峰时段、夜间、周末等时间特征工程,使用随机森林回归预测每小时共享单车租赁量,并解释关键影响因素。
描述本文基于 UCI Bike Sharing 数据集,展示时间序列回归的完整流程:构造高峰时段、夜间、周末等特征,使用随机森林回归预测每小时租车量,R² 达到 0.931,并分析哪些时间因素最影响需求。

本项目由 星枢 支持

星枢官网:https://claudeaihub.cloud/

共享单车需求预测:时间特征工程 + 随机森林,R² 达到 0.931

前面几个项目覆盖了分类、回归、聚类、医疗二分类和特征工程二分类。这次做一个时间序列回归:用 UCI Bike Sharing 数据集预测每小时共享单车租赁量。重点是展示时间特征工程的价值—— hour、是否高峰、是否夜间、是否周末,这些特征对预测结果影响巨大。

项目已开源:

https://github.com/coderWang404/xingshuProjects/tree/main/2026-06-14-bike-sharing-demand

核心结论:

  • 数据规模:17,379 条小时级记录
  • 模型:RandomForestRegressor
  • :0.9307
  • RMSE:46.84
  • MAE:28.73
  • 最强特征is_night(是否夜间)

1. 数据集

数据来自 UCI Machine Learning Repository 的 Bike Sharing Dataset,包含华盛顿特区 Capital Bikeshare 系统 2011-2012 年的每小时租车记录。

原始字段包括:

字段含义
season季节(1=春,2=夏,3=秋,4=冬)
yr年份(0=2011,1=2012)
mnth月份
hr小时(0-23)
holiday是否节假日
weekday星期几
workingday是否工作日
weathersit天气状况
temp归一化温度
atemp归一化体感温度
hum归一化湿度
windspeed归一化风速
casual临时用户租车数
registered注册用户租车数
cnt总租车数(目标)

目标cnt = casual + registered。为了防止数据泄漏,训练时去掉了casualregistered,只用时间、气象和构造的特征预测总量。

2. 环境准备

pandas numpy scikit-learn matplotlib seaborn requests
gitclone https://github.com/coderWang404/xingshuProjects.gitcdxingshuProjects/2026-06-14-bike-sharing-demand python-mvenv venvsourcevenv/bin/activate pipinstall-rrequirements.txt

3. 运行实验

python experiments/bike-sharing/run_experiment.py

4. 时间特征工程

这个项目的核心是构造有效的时间特征。原始数据里hr已经很有用,但模型很难直接理解"0-5 点是夜间"、"7-9 点和 17-19 点是通勤高峰"这些业务知识。

我构造了三个关键二值特征:

data["is_rush_hour"]=((data["workingday"]==1)&(data["hr"].isin([7,8,9,17,18,19]))).astype(int)data["is_weekend"]=(data["weekday"].isin([0,6])).astype(int)data["is_night"]=((data["hr"]>=22)|(data["hr"]<=5)).astype(int)

另外还加了一个气象交互特征:

data["temp_atemp_diff"]=data["atemp"]-data["temp"]

分类变量(season, yr, mnth, hr, holiday, weekday, workingday, weathersit)做了 one-hot 编码。最终输入模型的特征有 57 个。

5. 建模与结果

模型参数:

RandomForestRegressor(n_estimators=300,max_depth=15,min_samples_leaf=2,random_state=42,n_jobs=-1,)

测试集结果:

指标数值
0.9307
RMSE46.8373
MAE28.7267

R² 0.93 非常高,说明模型能解释 93% 的租车量方差。对于共享单车这种受天气、节假日、突发事件影响很大的业务场景,这个表现已经很好。

散点图显示预测值和实际值高度集中在对角线附近。

按小时聚合后,模型几乎完美复刻了实际租车量的双峰模式:早高峰和晚高峰。这说明hris_rush_hour两个特征捕获了主要的日内周期。

6. 特征重要性:夜间是最强信号

Permutation Importance 排名前 10:

排名特征重要性
1is_night0.6707
2is_rush_hour0.4940
3temp0.1930
4yr_10.1916
5workingday_10.0929
6hum0.0639
7hr_90.0591
8hr_70.0405
9atemp0.0361
10hr_60.0355

is_night 排名第一,这很合理:夜间(22:00-05:00)租车量几乎降到接近 0,这个二值特征能直接切掉一大块方差。

is_rush_hour 排名第二,说明通勤时段是工作日的核心需求。

temp 排名第三,温度对共享单车需求有显著正向影响——天气越暖和,骑车的人越多。

yr_1(2012 年)排名第四,说明租车量在逐年增长,系统用户基数在扩大。

一个有趣的观察是:hr_9hr_7hr_6这些单个小时 one-hot 特征也进入了前十,说明通勤高峰的具体小时有额外的信息,不是光靠is_rush_hour就能完全捕捉。

7. 这个实验的业务含义

共享单车需求预测是一个典型的时间序列回归问题。这个结果可以指导实际业务:

  • 调度:高峰前把车辆调度到通勤热点
  • 维护:夜间低需求时段进行车辆维护
  • 营销:温度高的晴天加大推广力度
  • 容量规划:根据年增长趋势(yr_1)扩容

当然,真实系统还需要考虑更复杂的因素:特殊事件、地铁罢工、共享单车竞争、实时天气预警等。但这个实验展示了基础时间特征工程就能达到很好的效果。

8. 实验输出

运行脚本后experiments/bike-sharing/outputs/会生成:

metrics.json # 完整指标 JSON feature_importance.csv # 全部特征重要性 dataset_profile.csv # 数据统计 actual_vs_predicted.png # 实际 vs 预测散点图 residuals.png # 残差分布图 hourly_pattern.png # 按小时聚合趋势图 feature_importance.png # 特征重要性图 summary.md # 实验摘要

9. 总结

这个实验让我重新认识了时间特征工程在回归任务中的价值:

  • 业务知识可以转化为强特征。“夜间租车少”、"早晚高峰租车多"这些常识,通过is_nightis_rush_hour变成模型能直接使用的信号。
  • 随机森林对时间周期模式学习能力强。配合 one-hot 编码的hr,模型能准确拟合双峰曲线。
  • 温度是气象因素中最关键的。这和日常经验一致。
  • R² 0.93 不代表可以无脑上线。真实业务中还需要考虑极端天气、特殊事件、实时性等更复杂因素。

如果想继续优化,可以试试:

  • 用 Gradient Boosting(XGBoost / LightGBM)对比
  • 加入前一天同时段的滞后特征(lag features)
  • 加入移动平均特征
  • 把预测目标从总量拆分为 casual 和 registered 分别建模

本项目由 星枢 支持

星枢官网:https://claudeaihub.cloud/

http://www.gsyq.cn/news/1536307.html

相关文章:

  • 行业白皮书配套门店测评榜单,上海全域上门,全品类回收高效回款 - 禹竞
  • 2026淮安装修公司综合实力TOP7 正规家装企业年度榜单 - 装企自媒体训练营辉哥
  • 永州贴膜全解析:行业现状、选购避坑指南与本地靠谱门店参考 - 国麟测评
  • 企业级文档自动化:clawPDF虚拟打印机的深度应用指南
  • # 2026年临沂空调移机机构实力排行榜:兰山区河东区罗庄区,基于空调服务的5大权威推荐榜单 - 十大品牌榜
  • 自由创新研究探索:青年研究者的50小时实践方法论
  • MQTT 发布/订阅模式介绍
  • Windows Mobile短信管理工具的嵌入式优化实践
  • # 2026年国内广东广州等地泰茶培训公司实力排行榜:基于餐饮管理的十大权威推荐榜单 - 十大品牌榜
  • 如何用3个步骤拯救你的损坏视频?Untrunc开源工具深度解析
  • 2026年青岛LV包包回收测评:本地靠谱奢侈品变现渠道盘点 - 薛定谔的梨花猫
  • 2026手机靓号网推荐服务商排名 正规平台盘点 - 速递信息
  • 2026 亨得利腕表送修防骗全合集:线下假冒门店实地实测 + 正规授权网点查询步骤(值得保存收藏) - 亨得利官方维修中心
  • 2026年枣庄装修公司综合实力TOP5——本地靠谱家装企业深度测评 - 装企自媒体训练营辉哥
  • 2026年6月最新欧米茄中国官方售后网点服务地址与客户电话 - 欧米茄服务中心
  • 2026 深圳黄金回收榜单!五家靠谱门店全盘点 - 讯息早知道
  • # 2026年临沂空调安装师傅实力排行榜:兰山区河东区罗庄区等地5大品牌榜单 - 十大品牌榜
  • 2026年AI写作辅助网站推荐:9款高效AI工具终极指南
  • NarratoAI:AI智能视频解说解决方案,让创作效率提升10倍
  • 2026儿童影像服务旺季选店指南|西安适龄家庭优选榜单 - 江湖评测
  • 2026年郑州温泉泳池水处理设备选型指南:五大厂家对标与成本控制全解 - 年度推荐企业名录
  • input-overlay实战指南:三步解决直播输入可视化难题的终极方案
  • ASP.NET MVC架构本质与十年工程实践
  • 2026年永辉超市购物卡回收优质平台推荐榜|合规靠谱、高价极速变现实测排行 - 热点速览
  • 生产级RAG系统落地实战:延迟优化、数据漂移与向量检索稳定性
  • Windows 11 上 Rust 开发环境报错 `x86_64-w64-mingw32-gcc` 链接失败?别急着重装,试试这个 MSVC 一键切换方案
  • 常州正规实体黄金回收门店,实时大盘金价无隐形扣费 - 奢侈品回收测评
  • 5分钟获取免费OpenAI API密钥:开启零成本AI开发之旅
  • 2026 泉州防水补漏靠谱公司 TOP5 口碑榜:全屋漏水检修、卫生间免砸砖防水、楼顶外墙渗水、飘窗阳台漏水治理、地下室防潮、瓷砖空鼓翻新综合测评 - 泛家庭维修
  • FPGA实战(21):基于Verilog的可配置扫频信号发生器设计与验证