Built an end-to-end ML weather forecasting system for Semarang, Indonesia, combining two models: a Random Forest Regressor for temperature, humidity, precipitation, and wind speed, and an XGBoost Classifier for weather category (Clear/Cloudy/Light Rain/Heavy Rain).
Trained on ~39,000 hours of historical weather data (2022-2026) from the Open-Meteo Archive API, engineered into time-based and lag/rolling features. Data was split temporally (80/20) to avoid leakage across time.
On the test set, the regression model achieved R2 of 0.96 for temperature and 0.95 for humidity, while the classifier reached ~73% accuracy across four weather categories.
The system is deployed as an interactive Streamlit + Plotly dashboard with five pages: live forecasts (via Open-Meteo's real-time API), historical predictions, exploratory data analysis, and full model evaluation with feature importance.
Built an end-to-end ML weather forecasting system for Semarang, Indonesia, combining two models: a Random Forest Regressor for temperature, humidity, precipi...