About Atmos
A machine learning app that forecasts the next 7 days of mean temperature for Cairo, Egypt.
How it works
- 10 years of hourly weather from the Open-Meteo archive API, cleaned (gaps, duplicates, impossible values, outliers) and aggregated to daily values.
- Time-series EDA: trend, yearly seasonality, decomposition, ACF/PACF and stationarity tests (see the Task 4 & 5 notebooks).
- For each of the next 7 days a separate model (Ridge, Gradient Boosting, Random Forest) predicts the mean temperature from today’s temperature, humidity, wind, pressure and the day of the year.
- Validated chronologically on the last 90 days (never shuffled, no leakage). Models are compared against “persistence” and “seasonal average” baselines.
- The “Why this prediction?” chart replaces each input by its average and shows how much the forecast moves.
Accuracy on the hold-out period (day +1)
| Model | MAE | RMSE | sMAPE |
|---|---|---|---|
| Ridge Regression | 0.69°C | 0.88°C | 2.37% |
| Gradient Boosting | 0.7°C | 0.9°C | 2.39% |
| Random Forest best | 0.64°C | 0.87°C | 2.19% |
Trained through 2026-10-15. Limitations: one model set per city; inputs outside the training range trigger a caution message; forecasts further out are less certain.
Error by forecast horizon (MAE, °C)
| Model | +1d | +2d | +3d | +4d | +5d | +6d | +7d |
|---|---|---|---|---|---|---|---|
| Ridge Regression | 0.692 | 0.932 | 0.986 | 1.018 | 1.047 | 1.016 | 0.98 |
| Gradient Boosting | 0.697 | 0.929 | 0.976 | 1.019 | 1.06 | 1.065 | 1.05 |
| Random Forest | 0.642 | 0.872 | 0.941 | 1.033 | 1.078 | 1.072 | 1.024 |
| Persistence (today = tomorrow) | 0.686 | 1.022 | 1.155 | 1.282 | 1.471 | 1.537 | 1.499 |
| Climatology (seasonal average) | 1.017 | 1.009 | 0.994 | 0.994 | 0.993 | 0.984 | 0.994 |