尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
共享单车需求预测:时间特征工程 + 随机森林,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 条小时级记录模型RandomForestRegressorR²0.9307RMSE46.84MAE28.73最强特征is_night是否夜间1. 数据集数据来自 UCI Machine Learning Repository 的 Bike Sharing Dataset包含华盛顿特区 Capital Bikeshare 系统 2011-2012 年的每小时租车记录。原始字段包括字段含义season季节1春2夏3秋4冬yr年份0201112012mnth月份hr小时0-23holiday是否节假日weekday星期几workingday是否工作日weathersit天气状况temp归一化温度atemp归一化体感温度hum归一化湿度windspeed归一化风速casual临时用户租车数registered注册用户租车数cnt总租车数目标目标cnt casual registered。为了防止数据泄漏训练时去掉了casual和registered只用时间、气象和构造的特征预测总量。2. 环境准备pandas numpy scikit-learn matplotlib seaborn requestsgitclone https://github.com/coderWang404/xingshuProjects.gitcdxingshuProjects/2026-06-14-bike-sharing-demand python-mvenv venvsourcevenv/bin/activate pipinstall-rrequirements.txt3. 运行实验python experiments/bike-sharing/run_experiment.py4. 时间特征工程这个项目的核心是构造有效的时间特征。原始数据里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_estimators300,max_depth15,min_samples_leaf2,random_state42,n_jobs-1,)测试集结果指标数值R²0.9307RMSE46.8373MAE28.7267R² 0.93 非常高说明模型能解释 93% 的租车量方差。对于共享单车这种受天气、节假日、突发事件影响很大的业务场景这个表现已经很好。散点图显示预测值和实际值高度集中在对角线附近。按小时聚合后模型几乎完美复刻了实际租车量的双峰模式早高峰和晚高峰。这说明hr和is_rush_hour两个特征捕获了主要的日内周期。6. 特征重要性夜间是最强信号Permutation Importance 排名前 10排名特征重要性1is_night0.67072is_rush_hour0.49403temp0.19304yr_10.19165workingday_10.09296hum0.06397hr_90.05918hr_70.04059atemp0.036110hr_60.0355is_night 排名第一这很合理夜间22:00-05:00租车量几乎降到接近 0这个二值特征能直接切掉一大块方差。is_rush_hour 排名第二说明通勤时段是工作日的核心需求。temp 排名第三温度对共享单车需求有显著正向影响——天气越暖和骑车的人越多。yr_12012 年排名第四说明租车量在逐年增长系统用户基数在扩大。一个有趣的观察是hr_9、hr_7、hr_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_night和is_rush_hour变成模型能直接使用的信号。随机森林对时间周期模式学习能力强。配合 one-hot 编码的hr模型能准确拟合双峰曲线。温度是气象因素中最关键的。这和日常经验一致。R² 0.93 不代表可以无脑上线。真实业务中还需要考虑极端天气、特殊事件、实时性等更复杂因素。如果想继续优化可以试试用 Gradient BoostingXGBoost / LightGBM对比加入前一天同时段的滞后特征lag features加入移动平均特征把预测目标从总量拆分为 casual 和 registered 分别建模本项目由 星枢 支持星枢官网https://claudeaihub.cloud/
RELATED

相关推荐

赛马娘DMM版终极本地化指南:3分钟实现中文界面与性能优化

赛马娘DMM版终极本地化指南:3分钟实现中文界面与性能优化

赛马娘DMM版终极本地化指南:3分钟实现中文界面与性能优化 【免费下载链接】umamusume-localify Localify "ウマ娘: Pretty Derby" DMM client 项目地址: https://gitcode.com/gh_mirrors/um/umamusume-localify 还在为赛马娘DMM版的日文界面而苦恼…

📅 2026/9/18 9:00:19
Nexior:基于Docker与Vercel的AI服务双轨交付骨架

Nexior:基于Docker与Vercel的AI服务双轨交付骨架

1. 项目概述:Nexior 不是“又一个 AI 前端”,而是一套可即插即用的 AI 服务交付骨架你有没有试过在 GitHub 上搜“AI 平台”,结果刷出几百个带漂亮 UI 的 React 项目,点进去一看——后端空着、模型没集成、API 要自己配、部署文档…

📅 2026/9/20 12:20:05
MORE NEWS

更多资讯

📰

小米吸尘器开发实战:3个新手避坑指南

小米吸尘器开发实战:3个新手避坑指南 刚拿到小米吸尘器SDK代码,运行报错“Connection refused”?别慌,这不是你代码写错了,是新手最常见的环境配置坑。很多开发者照着官方文档复制粘贴,结果连本地模拟都跑不起来,根本不知道怎么…

📰

MTK6592驱动开发新手避坑指南:3个致命Bug让你少走两年弯路

MTK6592驱动开发新手避坑指南:3个致命Bug让你少走两年弯路 版本升级后 API 全变了,代码跑不起来?别慌,这是无数嵌入式工程师在 MTK6592 平台上踩过的深坑。新手避坑的核心,不在于背多少…

📰

2016季中冠军赛复盘:速查手册助你面试不再慌

2016季中冠军赛复盘:速查手册助你面试不再慌 面试被问原理答不上来,那种脑子一片空白的感觉,比现场断电还让人崩溃。别慌,这份关于【2016季中冠军赛】的速查手册,就是为你准备的救命稻草。…

📰

移动梦网是什么原理一文搞懂

移动梦网是什么原理一文搞懂 屏幕一黑,IDE 弹出满屏红色 StackTrace ,光标在 NullPointerException…

📰

如何改变性格?10年老兵揭秘新手避坑指南,别再硬啃代码了

如何改变性格?10年老兵揭秘新手避坑指南,别再硬啃代码了 看了一堆教程还是不会写项目?这是无数开发者深夜崩溃时的真实写照。你跟着视频敲代码,一行行没问题,关掉视频自己写,脑子一片空白。别急,这不是你笨,是你掉进了“新手避坑”的陷阱里。…

📰

柴静新书发布会避坑指南:3个配置雷区与手写实现方案

柴静新书发布会避坑指南:3个配置雷区与手写实现方案 配置环境就卡半天,是不是觉得熟悉又痛苦?很多后端同学在搭建类似“柴静新书发布会”这种高并发、实时数据推送的系统时,往往在依赖安装、端口冲突或内存溢出上耗掉大半精力。更坑的是,为了图省事直接…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬