Supervised LearningTime-Series ForecastingForecasting

Prophet

Primary task · Forecasting

Prophet is a supervised learning method in the time-series forecasting family. This page summarizes its mechanism, practical uses, important trade-offs, and a browser-based concept explorer.

← Directory
Visual intuition

From data to learned behaviour

Prophet converts patterns in observed data into a reusable prediction or representation rule. The most useful way to understand it is to watch what internal structure changes during training and how that learned structure changes outputs.

Infographic
1Data2Initial state3Optimise4Validate5InferenceTraining transforms evidence into a reusable model state
Conceptual simulation

Watch the learning mechanism form

The structure below is synchronized with the same training state used by the prediction simulation.

Mechanism view
Training control centre

Control both simulations together

Reset regenerates the synthetic data and model state. Train animates to completion. Pause freezes the animation. Train Step advances one learning stage.

Step 0 / 12
Model simulation

Inspect the learned prediction / representation

Synthetic data are generated locally in your browser.

Model description

Understand Prophet after watching it learn

This section connects the animation to the actual statistical or computational idea behind the model.

Deep description

Prophet Prophet is a supervised learning method in the time-series forecasting family. This page summarizes its mechanism, practical uses, important trade-offs, and a browser-based concept explorer.

What is learned. During training, the algorithm builds or adjusts the parameters and internal representation used by Prophet. The core learning mechanism is: Decomposable additive model combining piecewise linear/logistic growth trends, Fourier series seasonalities, and holiday effects.

How training becomes inference. Prepare data → initialise the model state → evaluate the current objective → update parameters or structure → validate progress → use the final state for inference. Once training stops, the fitted state is reused on unseen inputs rather than being reconstructed from scratch. The resulting output is: Future values or trajectories, often with trend/seasonal components and sometimes uncertainty intervals.

Why practitioners use it. Handles missing data, trend changepoints, and outliers automatically; intuitive parameters for business analysts. Typical fits include Retail sales projections, website traffic capacity forecasting, business KPI goal setting.

What to verify before trusting it. Can underfit subtle short-term cyclical dynamics compared to modern autoregressive neural models. The visual simulation is intentionally simplified, so real use should still validate preprocessing, data independence, hyperparameters, uncertainty and task-appropriate metrics.

Internal statethe parameters and internal representation used by Prophet
Typical outputFuture values or trajectories, often with trend/seasonal components and sometimes uncertainty intervals.
Good fitRetail sales projections, website traffic capacity forecasting, business KPI goal setting.
Main cautionCan underfit subtle short-term cyclical dynamics compared to modern autoregressive neural models.
1Training data→
2Learning objective→
3Internal model state→
4Prediction / representation→
5Evaluation
Intuition

What the model is trying to learn

Prophet converts patterns in observed data into a reusable prediction or representation rule. The most useful way to understand it is to watch what internal structure changes during training and how that learned structure changes outputs.

Mathematical lens

Core logic

Decomposable additive model combining piecewise linear/logistic growth trends, Fourier series seasonalities, and holiday effects. The mathematical objective determines which model states are considered better, while regularisation and validation constrain how much complexity should be trusted.

Training sequence

How learning progresses

Prepare data → initialise the model state → evaluate the current objective → update parameters or structure → validate progress → use the final state for inference.

Original mechanism

Taxonomy description

Decomposable additive model combining piecewise linear/logistic growth trends, Fourier series seasonalities, and holiday effects.

Evaluation guide

How to evaluate this model responsibly

ValidationChoose validation that matches the independence assumptions of the data.
MetricsUse task-specific primary and complementary metrics.
HPOEstablish a baseline first, then search the parameters that materially change capacity.
Post-processingValidate any downstream transformation on held-out data.
Hyperparameters

Key parameters

changepoint_prior_scaleTypical: 0.05

Flexibility of trend changepoints.

seasonality_prior_scaleTypical: 10

Strength of seasonal components.

seasonality_modeTypical: additive

Additive or multiplicative seasonality.

holidays_prior_scaleTypical: 10

Regularization of holiday effects.

Use & trade-offs

Where it fits

Typical applications

Retail sales projections, website traffic capacity forecasting, business KPI goal setting.

Strengths

Handles missing data, trend changepoints, and outliers automatically; intuitive parameters for business analysts.

Limitations

Can underfit subtle short-term cyclical dynamics compared to modern autoregressive neural models.

Code example

Minimal Python implementation

try:
    import pandas as pd
    from prophet import Prophet
except ImportError:
    print("Install the optional dependency with: pip install prophet")
else:
    print("STEP 1 · Create Prophet's required ds/y time-series table")
    df=pd.DataFrame({"ds":pd.date_range("2025-01-01",periods=24,freq="MS"),"y":[10+i*0.4+2*((i%12) in (5,6,7)) for i in range(24)]})
    model=Prophet(yearly_seasonality=False,weekly_seasonality=False,daily_seasonality=False)
    model.fit(df); future=model.make_future_dataframe(periods=3,freq="MS"); forecast=model.predict(future)
    print("STEP 2 · Fit additive trend and forecast future dates")
    print("STEP 3 · future yhat", [round(v,2) for v in forecast.tail(3)["yhat"]])
Expected / representative output
Install the optional dependency with: pip install prophet