decomposer#

Component that removes trends from time series and returns the decomposed components.

Module Contents#

Classes Summary#

Decomposer

Component that removes trends and seasonality from time series and returns the decomposed components.

Contents#

class evalml.pipelines.components.transformers.preprocessing.decomposer.Decomposer(component_obj=None, random_seed: int = 0, degree: int = 1, period: int = - 1, seasonal_smoother: int = 7, time_index: str = None, acf_threshold: float = 0.01, rel_max_order: int = 5, **kwargs)[source]#

Component that removes trends and seasonality from time series and returns the decomposed components.

Parameters
  • parameters (dict) – Dictionary of parameters to pass to component object.

  • component_obj (class) – Instance of a detrender/deseasonalizer class.

  • random_seed (int) – Seed for the random number generator. Defaults to 0.

  • degree (int) – Currently the degree of the PolynomialDecomposer, not used for STLDecomposer.

  • period (int) – The best guess, in units, for the period of the seasonal signal.

  • seasonal_smoother (int) – The seasonal smoothing parameter for STLDecomposer, not used for PolynomialDecomposer.

  • time_index (str) – The column name of the feature matrix (X) that the datetime information should be pulled from.

  • acf_threshold (float) – The threshold for the autocorrelation function to determine the period. Any values below the threshold are considered to be 0 and will not be considered for the period. Defaults to 0.01.

  • rel_max_order (int) – The order of the relative maximum to determine the period. Defaults to 5.

Attributes

hyperparameter_ranges

None

invalid_frequencies

[]

modifies_features

False

modifies_target

True

name

Decomposer

needs_fitting

True

training_only

False

Methods

clone

Constructs a new component with the same parameters and random state.

default_parameters

Returns the default parameters for this component.

describe

Describe a component and its parameters.

determine_periodicity

Function that uses autocorrelative methods to determine the likely most signficant period of the seasonal signal.

fit

Fits component to data.

fit_transform

Removes fitted trend and seasonality from target variable.

get_trend_dataframe

Return a list of dataframes, each with 3 columns: trend, seasonality, residual.

inverse_transform

Add the trend + seasonality back to y.

is_freq_valid

Determines if the given string represents a valid frequency for this decomposer.

load

Loads component at file path.

parameters

Returns the parameters which were used to initialize the component.

plot_decomposition

Plots the decomposition of the target signal.

save

Saves component at file path.

set_period

Function to set the component's seasonal period based on the target's seasonality.

transform

Transforms data X.

update_parameters

Updates the parameter dictionary of the component.

clone(self)#

Constructs a new component with the same parameters and random state.

Returns

A new instance of this component with identical parameters and random state.

default_parameters(cls)#

Returns the default parameters for this component.

Our convention is that Component.default_parameters == Component().parameters.

Returns

Default parameters for this component.

Return type

dict

describe(self, print_name=False, return_dict=False)#

Describe a component and its parameters.

Parameters
  • print_name (bool, optional) – whether to print name of component

  • return_dict (bool, optional) – whether to return description as dictionary in the format {“name”: name, “parameters”: parameters}

Returns

Returns dictionary if return_dict is True, else None.

Return type

None or dict

determine_periodicity(self, X: pandas.DataFrame, y: pandas.Series)[source]#

Function that uses autocorrelative methods to determine the likely most signficant period of the seasonal signal.

Parameters
  • X (pandas.DataFrame) – The feature data of the time series problem.

  • y (pandas.Series) – The target data of a time series problem.

Returns

The integer number of entries in time series data over which the seasonal part of the target data

repeats. If the time series data is in days, then this is the number of days that it takes the target’s seasonal signal to repeat. Note: the target data can contain multiple seasonal signals. This function will only return the stronger. E.g. if the target has both weekly and yearly seasonality, the function may return either “7” or “365”, depending on which seasonality is more strongly autocorrelated. If no period is detected, returns None.

Return type

int

fit(self, X, y=None)#

Fits component to data.

Parameters
  • X (pd.DataFrame) – The input training data of shape [n_samples, n_features]

  • y (pd.Series, optional) – The target training data of length [n_samples]

Returns

self

Raises

MethodPropertyNotFoundError – If component does not have a fit method or a component_obj that implements fit.

fit_transform(self, X: pandas.DataFrame, y: pandas.Series = None) tuple[pandas.DataFrame, pandas.Series][source]#

Removes fitted trend and seasonality from target variable.

Parameters
  • X (pd.DataFrame, optional) – Ignored.

  • y (pd.Series) – Target variable to detrend and deseasonalize.

Returns

The first element are the input features returned without modification.

The second element is the target variable y with the fitted trend removed.

Return type

tuple of pd.DataFrame, pd.Series

abstract get_trend_dataframe(self, y: pandas.Series)[source]#

Return a list of dataframes, each with 3 columns: trend, seasonality, residual.

abstract inverse_transform(self, y: pandas.Series)[source]#

Add the trend + seasonality back to y.

classmethod is_freq_valid(self, freq: str)[source]#

Determines if the given string represents a valid frequency for this decomposer.

Parameters

freq (str) – A frequency to validate. See the pandas docs at https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases for options.

Returns

boolean representing whether the frequency is valid or not.

static load(file_path)#

Loads component at file path.

Parameters

file_path (str) – Location to load file.

Returns

ComponentBase object

property parameters(self)#

Returns the parameters which were used to initialize the component.

plot_decomposition(self, X: pandas.DataFrame, y: pandas.Series, show: bool = False) tuple[matplotlib.pyplot.Figure, list][source]#

Plots the decomposition of the target signal.

Parameters
  • X (pd.DataFrame) – Input data with time series data in index.

  • y (pd.Series or pd.DataFrame) – Target variable data provided as a Series for univariate problems or a DataFrame for multivariate problems.

  • show (bool) – Whether to display the plot or not. Defaults to False.

Returns

The figure and axes that have the decompositions

plotted on them

Return type

matplotlib.pyplot.Figure, list[matplotlib.pyplot.Axes]

save(self, file_path, pickle_protocol=cloudpickle.DEFAULT_PROTOCOL)#

Saves component at file path.

Parameters
  • file_path (str) – Location to save file.

  • pickle_protocol (int) – The pickle data stream format.

set_period(self, X: pandas.DataFrame, y: pandas.Series)[source]#

Function to set the component’s seasonal period based on the target’s seasonality.

Parameters
  • X (pandas.DataFrame) – The feature data of the time series problem.

  • y (pandas.Series) – The target data of a time series problem.

abstract transform(self, X, y=None)#

Transforms data X.

Parameters
  • X (pd.DataFrame) – Data to transform.

  • y (pd.Series, optional) – Target data.

Returns

Transformed X

Return type

pd.DataFrame

Raises

MethodPropertyNotFoundError – If transformer does not have a transform method or a component_obj that implements transform.

update_parameters(self, update_dict, reset_fit=True)#

Updates the parameter dictionary of the component.

Parameters
  • update_dict (dict) – A dict of parameters to update.

  • reset_fit (bool, optional) – If True, will set _is_fitted to False.