featuretools.primitives.RollingSTD#
- class featuretools.primitives.RollingSTD(window_length=3, gap=1, min_periods=1)[source]#
Calculates the standard deviation of entries over a given window.
- Description:
Given a list of numbers and a corresponding list of datetimes, return a rolling standard deviation of the numeric values, starting at the row gap rows away from the current row and looking backward over the specified time window (by window_length and gap). Input datetimes should be monotonic.
- Parameters:
window_length (int, string, optional) – Specifies the amount of data included in each window. If an integer is provided, it will correspond to a number of rows. For data with a uniform sampling frequency, for example of one day, the window_length will correspond to a period of time, in this case, 7 days for a window_length of 7. If a string is provided, it must be one of pandas’ offset alias strings (‘1D’, ‘1H’, etc), and it will indicate a length of time that each window should span. The list of available offset aliases can be found at https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases. Defaults to 3.
gap (int, string, optional) – Specifies a gap backwards from each instance before the window of usable data begins. If an integer is provided, it will correspond to a number of rows. If a string is provided, it must be one of pandas’ offset alias strings (‘1D’, ‘1H’, etc), and it will indicate a length of time between a target instance and the beginning of its window. Defaults to 1.
min_periods (int, optional) – Minimum number of observations required for performing calculations over the window. Can only be as large as window_length when window_length is an integer. When window_length is an offset alias string, this limitation does not exist, but care should be taken to not choose a min_periods that will always be larger than the number of observations in a window. Defaults to 1.
Note
Only offset aliases with fixed frequencies can be used when defining gap and window_length. This means that aliases such as M or W cannot be used, as they can indicate different numbers of days. (‘M’, because different months have different numbers of days; ‘W’ because week will indicate a certain day of the week, like W-Wed, so that will indicate a different number of days depending on the anchoring date.)
Note
When using an offset alias to define gap, an offset alias must also be used to define window_length. This limitation does not exist when using an offset alias to define window_length. In fact, if the data has a uniform sampling frequency, it is preferable to use a numeric gap as it is more efficient.
Examples
>>> import pandas as pd >>> rolling_std = RollingSTD(window_length=4) >>> times = pd.date_range(start='2019-01-01', freq='1min', periods=5) >>> rolling_std(times, [4, 3, 2, 1, 0]).tolist() [nan, nan, 0.7071067811865476, 1.0, 1.2909944487358056]
We can also control the gap before the rolling calculation.
>>> import pandas as pd >>> rolling_std = RollingSTD(window_length=4, gap=0) >>> times = pd.date_range(start='2019-01-01', freq='1min', periods=5) >>> rolling_std(times, [4, 3, 2, 1, 0]).tolist() [nan, 0.7071067811865476, 1.0, 1.2909944487358056, 1.2909944487358056]
We can also control the minimum number of periods required for the rolling calculation.
>>> import pandas as pd >>> rolling_std = RollingSTD(window_length=4, min_periods=4, gap=0) >>> times = pd.date_range(start='2019-01-01', freq='1min', periods=5) >>> rolling_std(times, [4, 3, 2, 1, 0]).tolist() [nan, nan, nan, 1.2909944487358056, 1.2909944487358056]
We can also set the window_length and gap using offset alias strings. >>> import pandas as pd >>> rolling_std = RollingSTD(window_length=’4min’, gap=’1min’) >>> times = pd.date_range(start=’2019-01-01’, freq=’1min’, periods=5) >>> rolling_std(times, [4, 3, 2, 1, 0]).tolist() [nan, nan, 0.7071067811865476, 1.0, 1.2909944487358056]
Methods
__init__
([window_length, gap, min_periods])flatten_nested_input_types
(input_types)Flattens nested column schema inputs into a single list.
generate_name
(base_feature_names)generate_names
(base_feature_names)get_args_string
()get_arguments
()get_description
(input_column_descriptions[, ...])get_filepath
(filename)get_function
()Attributes
base_of
base_of_exclude
commutative
default_value
Default value this feature returns if no data found.
description_template
input_types
woodwork.ColumnSchema types of inputs
max_stack_depth
name
Name of the primitive
number_output_features
Number of columns in feature matrix associated with this feature
return_type
ColumnSchema type of return
stack_on
stack_on_exclude
stack_on_self
uses_calc_time
uses_full_dataframe