04 / 08 · AI & ML
EcoMoveUS
Demand forecasting · Machine learning
Built a regression workflow to forecast bike-rental demand from weather, calendar, and temporal features, supporting fleet and staffing decisions.
Random Forest: R² 0.941 · RMSE 50.24
01 — The brief
Problem & outcome.
The problem
EcoMoveUS needed to anticipate bike-rental demand ahead of time so it could plan fleet distribution and staffing, instead of reacting to demand after it happened and losing rides to empty stations.
The outcome
Trained and compared regression models on weather, calendar, and temporal features; the Random Forest model explained 94.1% of demand variance (R² 0.941, RMSE 50.24), giving a reliable forecast to plan fleet and staffing decisions around.
I cleaned and feature-engineered weather, calendar, and temporal data, then benchmarked a linear regression baseline against a Random Forest ensemble. Random Forest explained 94.1% of demand variance versus 41.5% for the linear baseline, with hour of day standing out as the single dominant driver.
02 — How it works
The model.

Average rentals by weekday and hour: the morning and evening commute peaks are the main driver the model picks up on.
03 — Results
What the data said.
04 — Approach
Step by step.
Data cleaning
Range checks on temperature, humidity, and wind speed; removal of invalid records and outliers.
Feature engineering
Expanded hour, weekday, season, and business-day fields; added interaction terms (Hour × Temperature, Temp × Humidity); one-hot encoded categorical variables.
Modelling
80/20 train-test split (random_state=42); Linear Regression baseline versus Random Forest (100 estimators).
Evaluation
Compared RMSE and R² on the held-out test set, then reviewed feature importance for interpretability.
05 — Highlights
At a glance.
- R² 0.941 vs 0.415 baseline
- RMSE 50.24
- Hour of day: 68.5% importance
- Interaction features
- 80/20 held-out test
- Feature-importance review