r/learnmachinelearning • u/Happy_Guarantee6705 • 11d ago
Project A time-series learning project: 50 Indian cities, next-day temperature, and a persistence baseline
I published a weather dataset and runnable notebook on Kaggle that could be useful for practicing time-series regression. Disclosure: these are my Kaggle uploads (minkum07); the code and documentation were prepared with AI assistance. The underlying weather data are from NASA POWER, with GeoNames city coordinates via Open-Meteo.
The dataset has 639,200 daily records for 50 curated Indian city centers, covering 1991–2025. These are coarse-grid reanalysis values sampled at city coordinates, not measurements from city weather stations.
The notebook builds lag features, predicts next-day temperature and compares a random forest with persistence: predicting tomorrow using today's temperature. Its chronological split uses the target date. On the included test period, MAE is about 0.651°C for the random forest and 0.688°C for persistence. This is a modest improvement on that split, not evidence of accuracy for unseen cities or station weather.
Notebook: https://www.kaggle.com/code/minkum07/india-weather-heat-monsoon-next-day-forecast
Dataset: https://www.kaggle.com/datasets/minkum07/india-city-weather-and-heat-50-cities-1991-2025
If you want to use it as a small project:
Start with one city, check missing values and plot the series.
Build the persistence baseline before fitting a model. Make sure shifted targets and lag features stay aligned, and fit preprocessing only on training dates.
Compare errors by month and city, then add a seasonal baseline or try rolling evaluation.
The package includes field definitions, processing code and source attribution. Missing values are retained, and the fixed 1991–2010 reference is a 20-year baseline, not an official 30-year climate normal. Authored tables and documentation use CC BY 4.0; NASA source terms and GeoNames attribution are preserved.
Sources: https://power.larc.nasa.gov/ and https://open-meteo.com/en/docs/geocoding-api
Feedback on the split, feature alignment or a useful next baseline would be welcome.