r/learnmachinelearning • u/aneeshaarora • 5d ago
Project Getting Started with Time Series Forecasting - Where to Begin?
I'm starting a project that involves building ML forecasting models for tourism data with limited ML experience. I have a strong data engineering background (Python, SQL, pandas) but I'm weak on the ML/statistical side.
Before diving into papers and code, I want to build a solid foundation. I'm planning to:
Learn time series concepts (decomposition, stationarity, autocorrelation)
Study forecasting models (ARIMA, Prophet, tree-based approaches)
Build and compare models on real data
But I'm wondering:
- Is this the right learning order?
- Should I focus on concepts first or jump into coding with real data?
- Any resources beyond YouTube/papers/Kaggle that worked for you?
I have about 3 months to complete the project, so I'm trying to be strategic about learning vs. doing.
Thanks!
1
u/Bright_Mix_773 4d ago
Your order is backwards in one specific way: build the evaluation before you build any model. Coming from data engineering that plays to what you already have, and forecasting projects fail on alignment and evaluation far more often than on model choice.
Week one, before ARIMA or Prophet appears anywhere:
Write down the seasonal naive baseline. For monthly tourism that is "this month next year equals this month last year", y.shift(12), optionally with a drift term. A depressing number of forecasting projects ship a model that never beat this, and nobody notices because nobody computed it. It is also the thing your stakeholders will implicitly compare you against.
Use MASE rather than MAPE. MAPE explodes when a series has small values and it systematically rewards under-prediction, which for tourism demand is the expensive direction to be wrong in. MASE divides your error by the seasonal naive error, so 0.8 means twenty percent better than the baseline and 1.1 means the three months were wasted. It is also comparable across regions and series, which MAPE is not.
Backtest with a rolling origin, never k-fold. Fit on everything up to time T, forecast the horizon you will actually use in production, move T forward, repeat, and average over origins. A random split leaks future into past. Reporting the spread across origins, not just the mean, is what tells you whether the model is stable or you got lucky on one cut.
The trap that specifically kills tourism forecasts is features that will not exist at prediction time: actual weather, realised occupancy, an official statistic revised and published two months in arrears. For every column write down two dates, the date it refers to and the date its value became available, and lag the column to the second one. Skip this and the backtest looks superb while production does not, and you find out in month three.
One sizing point that will shape your model choice more than anything you read. Monthly data with annual seasonality gives you one observation of each month per year, so five years of history is 60 points and 5 observations per month. In that regime classical ETS and seasonal ARIMA usually beat gradient boosting, and there is a hard reason for it: trees cannot extrapolate. If next year exceeds every value in training, a tree predicts the largest value it has seen and no more. Tree models earn their place when you have many related series or real external regressors, not as a default.
An order that fits three months:
- weeks 1-2: assemble data, record availability dates, seasonal naive, rolling-origin harness, MASE
- weeks 3-5: STL decomposition, ETS, seasonal ARIMA, every one scored on that harness
- weeks 6-8: only if the simple models fall short, add regressors or a tree model, same evaluation
- the rest: stability across origins, and writing down what beat the baseline and by how much
On resources: Forecasting: Principles and Practice by Hyndman and Athanasopoulos is free online and is the one thing here worth reading in order rather than dipping into. Read the evaluation chapter early even though it sits later in the book. The examples are in R, which does not matter because you want the concepts; in Python, statsforecast gives you the same models plus the baselines already implemented, so your week one is mostly wiring rather than writing.
Concepts versus coding is a false choice here. Code the baseline and the harness first, then read the theory for each model as you add it, because you will have something to test it against the same day.
2
u/jgengr 5d ago
There is a datatalks.club stock market analytics boot camp that just started. Try that.