gluonts.model.forecast module#
- class gluonts.model.forecast.Config(*, num_eval_samples: int = 100, output_types: Set[gluonts.model.forecast.OutputType] = {OutputType.mean, OutputType.quantiles}, quantiles: List[str] = ['0.1', '0.5', '0.9'], **extra_data: Any)[source]#
Bases:
pydantic.main.BaseModel
- num_samples: int#
- output_types: Set[gluonts.model.forecast.OutputType]#
- quantiles: List[str]#
- class gluonts.model.forecast.ExponentialTailApproximation(x_coord: List[float], y_coord: List[numpy.ndarray], tol: float = 1e-08)[source]#
Bases:
object
Approximate function on tails based on knots and make a inference on query point. Can be used for either interpolation or extrapolation on tails.
- Parameters
x_coord – x-coordinates of the data points must be in increasing order.
y_coord – y-coordinates of the data points - may be a higher numpy array.
tol – tolerance when performing the division and computing the log in the exponential extrapolation.
- init_exponential_tail_weights() Tuple[float, float] [source]#
Initialize the weight of exponentially decaying tail functions based on two extreme points on the left and right, respectively.
- Returns
beta coefficient for left and right tails.
- Return type
Tuple
- left(x: float) numpy.ndarray [source]#
Return the inference made on exponentially decaying tail functions.
For left tail, x = exp(beta * (q - alpha)) For right tail, x = 1 - exp(-beta * (q - alpha))
E.g. for x = self.x_coord[0] or self.x_coord[1], return value is exactly self.y_coord[0] or self.y_coord[1], respectively.
- Parameters
x – x-coordinate to evaluate the right tail.
- right(x: float) numpy.ndarray [source]#
Return the inference made on exponentially decaying tail functions.
For left tail, x = exp(beta * (q - alpha)) For right tail, x = 1 - exp(-beta * (q - alpha))
E.g. for x = self.x_coord[-1] or self.x_coord[-2] , return value is exactly self.y_coord[-1] or self.y_coord[-2] respectively. :param x: x-coordinate to evaluate the right tail.
- class gluonts.model.forecast.Forecast[source]#
Bases:
object
A abstract class representing predictions.
- as_json_dict(config: gluonts.model.forecast.Config) dict [source]#
- copy_aggregate(agg_fun: Callable)[source]#
Returns a new Forecast object with a time series aggregated over the dimension axis.
- Parameters
agg_fun – Aggregation function that defines the aggregation operation (typically mean or sum).
- copy_dim(dim: int)[source]#
Returns a new Forecast object with only the selected sub-dimension.
- Parameters
dim – The returned forecast object will only represent this dimension.
- property freq#
- property index: pandas.core.indexes.period.PeriodIndex#
- info: Optional[Dict]#
- item_id: Optional[str]#
- mean: numpy.ndarray#
- property median: numpy.ndarray#
- plot(prediction_intervals=(50.0, 90.0), show_mean=False, color='b', label=None, output_file=None, *args, **kwargs)[source]#
Plots the median of the forecast as well as confidence bounds. (requires matplotlib and pandas).
- Parameters
prediction_intervals (float or list of floats in [0, 100]) – Confidence interval size(s). If a list, it will stack the error plots for each confidence interval. Only relevant for error styles with “ci” in the name.
show_mean (boolean) – Whether to also show the mean of the forecast.
color (matplotlib color name or dictionary) – The color used for plotting the forecast.
label (string) – A label (prefix) that is used for the forecast
output_file (str or None, default None) – Output path for the plot file. If None, plot is not saved to file.
args – Other arguments are passed to main plot() call
kwargs – Other keyword arguments are passed to main plot() call
- prediction_length: int#
- quantile(q: Union[float, str]) numpy.ndarray [source]#
Computes a quantile from the predicted distribution.
- Parameters
q – Quantile to compute.
- Returns
Value of the quantile across the prediction range.
- Return type
numpy.ndarray
- start_date: pandas._libs.tslibs.period.Period#
- class gluonts.model.forecast.LinearInterpolation(x_coord: List[float], y_coord: List[numpy.ndarray], tol: float = 1e-08)[source]#
Bases:
object
Linear interpolation based on datapoints (x_coord, y_coord)
- Parameters
x_coord – x-coordinates of the data points must be in increasing order.
y_coord – y-coordinates of the data points - may be a list of lists.
tol – tolerance when performing the division in the linear interpolation.
- linear_interpolation(x: float) numpy.ndarray [source]#
If x is out of interpolation range, return smallest or largest value. Otherwise, find two nearest points [x_1, y_1], [x_2, y_2] and return its linear interpolation.
y = (x_2 - x)/(x_2 - x_1) * y_1 + (x - x_1)/(x_2 - x_1) * y_2.
- Parameters
x – x-coordinate to evaluate the interpolated points.
- Returns
Interpolated values same shape as self.y_coord
- Return type
np.ndarray
- class gluonts.model.forecast.OutputType(value)[source]#
Bases:
str
,enum.Enum
An enumeration.
- mean = 'mean'#
- quantiles = 'quantiles'#
- samples = 'samples'#
- class gluonts.model.forecast.Quantile(*, value: float, name: str)[source]#
Bases:
pydantic.main.BaseModel
- classmethod checked(value: float, name: str) gluonts.model.forecast.Quantile [source]#
- property coverage_name#
- classmethod from_float(quantile: float) gluonts.model.forecast.Quantile [source]#
- classmethod from_str(quantile: str) gluonts.model.forecast.Quantile [source]#
- property loss_name#
- name: str#
- classmethod parse(quantile: Union[gluonts.model.forecast.Quantile, float, str]) gluonts.model.forecast.Quantile [source]#
Produces equivalent float and string representation of a given quantile level.
>>> Quantile.parse(0.1) Quantile(value=0.1, name='0.1')
>>> Quantile.parse('0.2') Quantile(value=0.2, name='0.2')
>>> Quantile.parse('0.20') Quantile(value=0.2, name='0.20')
>>> Quantile.parse('p99') Quantile(value=0.99, name='0.99')
- Parameters
quantile – Quantile, can be a float a str representing a float e.g. ‘0.1’ or a quantile string of the form ‘p0.1’.
- Returns
A tuple containing both a float and a string representation of the input quantile level.
- Return type
- value: float#
- property weighted_loss_name#
- class gluonts.model.forecast.QuantileForecast(forecast_arrays: numpy.ndarray, start_date: pandas._libs.tslibs.period.Period, forecast_keys: List[str], item_id: Optional[str] = None, info: Optional[Dict] = None)[source]#
Bases:
gluonts.model.forecast.Forecast
A Forecast that contains arrays (i.e. time series) for quantiles and mean.
- Parameters
forecast_arrays – An array of forecasts
start_date (pandas._libs.tslibs.period.Period) – start of the forecast
forecast_keys – A list of quantiles of the form ‘0.1’, ‘0.9’, etc., and potentially ‘mean’. Each entry corresponds to one array in forecast_arrays.
info (Optional[Dict]) – additional information that the forecaster may provide e.g. estimated parameters, number of iterations ran etc.
- info: Optional[Dict]#
- item_id: Optional[str]#
- property mean: numpy.ndarray#
Forecast mean.
- plot(label=None, output_file=None, keys=None, *args, **kwargs)[source]#
Plots the median of the forecast as well as confidence bounds. (requires matplotlib and pandas).
- Parameters
prediction_intervals (float or list of floats in [0, 100]) – Confidence interval size(s). If a list, it will stack the error plots for each confidence interval. Only relevant for error styles with “ci” in the name.
show_mean (boolean) – Whether to also show the mean of the forecast.
color (matplotlib color name or dictionary) – The color used for plotting the forecast.
label (string) – A label (prefix) that is used for the forecast
output_file (str or None, default None) – Output path for the plot file. If None, plot is not saved to file.
args – Other arguments are passed to main plot() call
kwargs – Other keyword arguments are passed to main plot() call
- prediction_length: int#
- quantile(inference_quantile: Union[float, str]) numpy.ndarray [source]#
Computes a quantile from the predicted distribution.
- Parameters
q – Quantile to compute.
- Returns
Value of the quantile across the prediction range.
- Return type
numpy.ndarray
- start_date: pandas._libs.tslibs.period.Period#
- class gluonts.model.forecast.SampleForecast(samples: numpy.ndarray, start_date: pandas._libs.tslibs.period.Period, item_id: Optional[str] = None, info: Optional[Dict] = None)[source]#
Bases:
gluonts.model.forecast.Forecast
A Forecast object, where the predicted distribution is represented internally as samples.
- Parameters
samples – Array of size (num_samples, prediction_length) (1D case) or (num_samples, prediction_length, target_dim) (multivariate case)
start_date (pandas._libs.tslibs.period.Period) – start of the forecast
info (Optional[Dict]) – additional information that the forecaster may provide e.g. estimated parameters, number of iterations ran etc.
- as_json_dict(config: gluonts.model.forecast.Config) dict [source]#
- copy_aggregate(agg_fun: Callable) gluonts.model.forecast.SampleForecast [source]#
Returns a new Forecast object with a time series aggregated over the dimension axis.
- Parameters
agg_fun – Aggregation function that defines the aggregation operation (typically mean or sum).
- copy_dim(dim: int) gluonts.model.forecast.SampleForecast [source]#
Returns a new Forecast object with only the selected sub-dimension.
- Parameters
dim – The returned forecast object will only represent this dimension.
- info: Optional[Dict]#
- item_id: Optional[str]#
- property mean: numpy.ndarray#
Forecast mean.
- property mean_ts: pandas.core.series.Series#
Forecast mean, as a pandas.Series object.
- property num_samples#
The number of samples representing the forecast.
- property prediction_length#
Time length of the forecast.
- quantile(q: Union[float, str]) numpy.ndarray [source]#
Computes a quantile from the predicted distribution.
- Parameters
q – Quantile to compute.
- Returns
Value of the quantile across the prediction range.
- Return type
numpy.ndarray
- start_date: pandas._libs.tslibs.period.Period#
- to_quantile_forecast(quantiles: List[str]) gluonts.model.forecast.QuantileForecast [source]#