共享单车需求预测 · 时间特征工程与残差诊断 预览图

共享单车需求预测 · 时间特征工程与残差诊断

分场景子模型 + 手写傅里叶周期特征 + 同期均值基线,残差热力图定位系统性偏差

源码/项目包 v1.0 # Python# 机器学习# 时间序列

这个项目解决什么问题

共享单车需求预测(Kaggle Bike Sharing Demand 数据集)看起来是个回归问题,实质上是时间特征工程的问题:需求随小时、星期、季节、天气呈现强规律,谁能把"时间"用好,谁就赢。本项目还特意纠正了一个教程里常见的错误——时间数据随机切分——并补上了多数教程缺失的"残差诊断"环节,让模型误差可以被读懂、被改进。

核心亮点

  • 分场景子模型:工作日与非工作日分开建模,对应"通勤双峰"和"休闲单峰"两种截然不同的需求机制,对比表直接证明"分而治之"的收益。
  • 手写傅里叶周期特征:用小时谐波 + 年周期刻画需求的周期性,解决 23 点和 0 点在 one-hot 编码下"完全不相连"的问题——为什么这样做、带来了多少收益,项目里都有交代。
  • 按时间顺序切分:用"过去预测未来"的正确姿势组织训练与测试,而不是随机打乱——这是时间类问题最容易踩、也最容易被问到的坑。
  • 残差诊断:用"小时 × 月份"的残差热力图定位系统性低估的时段,并给出对应的业务解释——这个环节在教程里普遍缺席,但在课程汇报和实验报告里最能体现分析深度。
  • 同期均值基线:自实现"小时 × 星期"的历史均值作为基线,量化机器学习模型带来的真实提升——不跟基线比的提升都是自说自话。
  • 四模型横向对比:线性回归 / 随机森林 / XGBoost / LightGBM 在统一的时间切分与 RMSLE 评估体系下同场竞技。

效果预览

工作日与周末的分时需求曲线——"通勤双峰"与"休闲单峰"两种机制一眼可见,这正是分场景建模的依据:

分时需求曲线

预测值与真实值的 7 天对照曲线,整体走势与早晚高峰的贴合程度一目了然:

预测vs真实

残差的"小时 × 月份"热力图,系统性低估的时段被直接定位出来:

残差热力图

预览图基于模拟数据演示实际运行效果,真实数据运行结果以你下载的数据集为准。

你将学到

  • 时间特征工程的系统做法:小时 / 星期 / 月份的展开、周期性的傅里叶建模
  • 时间序列切分的正确姿势,以及随机切分为什么会"作弊"
  • 残差分析方法:如何从误差中找到下一个改进方向
  • 为什么要有基线模型,以及怎么量化的 ML 的真实提升
  • RMSLE 这类相对误差指标适合什么场景、为什么

适合谁

需要完成回归 / 时间序列方向毕业设计、或想把"特征工程 + 误差分析"能力补到实战水准的学习者。难度 ★★★,主流程清晰易跑;分场景建模与残差诊断两个模块能支撑起实验报告里最有分析深度的章节。


交付内容:完整可运行源码、README.md(逐步运行方法与实现说明)、requirements.txt。

数据集:第三方数据受原始授权限制不随包分发,按 README.md 里的官方链接下载放入 data/ 即可跑通全流程。

许可:个人使用,可用于自己的学习、课程实验与研究报告,请勿转售或公开传播。

Python 3
pandas
numpy
scikit-learn
XGBoost
LightGBM
手写傅里叶周期特征
matplotlib
seaborn

环境与步骤

pip install -r requirements.txt
pip install -r requirements.txt
python main.py        # 全流程 + 图表 + 残差诊断 + 对比报告

注意事项

  • 数据集不随包提供:先按 README.md 的链接下载放入 data/,再执行下面的命令。

Q:下载哪个数据集?需要 Kaggle 账号吗?

A:Bike Sharing Demand 竞赛数据(kaggle.com/c/bike-sharing-demand),需要登录 Kaggle 账号下载 train.csv 与 test.csv,放入 data/。

Q:为什么按工作日拆成两个模型?

A:通勤需求的“早晚双峰”和周末的“休闲单峰”是两种形态,一个模型硬拟合会两头不讨好。项目按 workingday 分流分别建模,并把“单模型 vs 分场景”的误差并排给出,拆分的收益是可量化的。

Q:时间序列数据能随机切分吗?

A:不能,这是教程里最常见的错误。项目专门做了时间外推验证,并把随机切分的结果放在一起对比,直观说明为什么会高估上线后的表现。

Q:除了模型精度还能看出什么?

A:残差诊断:log 空间残差按“小时 × 月份”画热力图和按月箱线图,定位系统性低估/高估的时段;另外自实现了“小时 × 星期”的同期均值查表基线(防泄漏),用来量化机器学习到底比查表强多少。

购买评价(0)

暂无评价,购买后第一个来评价吧
相关商品
🍪 隐私提示 我们仅收集提供服务所必需的信息(详见《隐私政策》),不出售、不追踪。
¥69
立即购买