featuretools.primitives.RollingTrend#
- class featuretools.primitives.RollingTrend(window_length=3, gap=1, min_periods=0)[源代码]#
计算列中给定窗口内随时间变化的条目趋势。
- 描述
给定一个数字列表和相应的日期时间列表,返回值的线性趋势的滚动斜率,计算窗口从当前行向后偏移 gap 行开始,并向后查看指定的时间窗口(由 window_length 和 gap 定义)。
输入的日期时间应该是单调的。
- 参数
- window_length (int, string, 可选): 指定每个窗口中包含的数据量。
如果提供整数,它将对应于行数。对于采样频率均匀的数据,例如每天一次,window_length 将对应一段时间,在这种情况下,window_length 为 7 时对应 7 天。如果提供字符串,它必须是 pandas 的偏移别名字符串之一(如‘1D’、‘1H’等),并且将指示每个窗口应该跨越的时间长度。可用偏移别名的列表可以在 https://pandas.ac.cn/pandas-docs/stable/user_guide/timeseries.html#offset-aliases 找到。默认为 3。
- gap (int, string, 可选): 指定从每个实例向后偏移的间隔,在此间隔之后才开始
可用数据窗口开始。如果提供整数,它将对应于行数。如果提供字符串,它必须是 pandas 的偏移别名字符串之一(如‘1D’、‘1H’等),并且将指示目标实例与其窗口开始之间的时长。默认为 1。
- min_periods (int, 可选): 执行计算所需的最少观察次数
在窗口中。当 window_length 是整数时,它只能和 window_length 一样大。当 window_length 是偏移别名字符串时,不存在此限制,但应注意不要选择始终大于窗口中观察次数的 min_periods。默认为 1。
示例
>>> import pandas as pd >>> rolling_trend = RollingTrend() >>> times = pd.date_range(start="2019-01-01", freq="1D", periods=10) >>> rolling_trend(times, [1, 2, 4, 8, 16, 24, 48, 96, 192, 384]).tolist() [nan, nan, nan, 1.4999999999999998, 2.9999999999999996, 5.999999999999999, 7.999999999999999, 16.0, 36.0, 72.0]
我们还可以控制滚动计算前的间隔。
>>> rolling_trend = RollingTrend(gap=0) >>> rolling_trend(times, [1, 2, 4, 8, 16, 24, 48, 96, 192, 384]).tolist() [nan, nan, 1.4999999999999998, 2.9999999999999996, 5.999999999999999, 7.999999999999999, 16.0, 36.0, 72.0, 144.0]
我们还可以控制滚动计算所需的最少周期数。
>>> rolling_trend = RollingTrend(window_length=4, min_periods=4, gap=0) >>> rolling_trend(times, [1, 2, 4, 8, 16, 24, 48, 96, 192, 384]).tolist() [nan, nan, nan, 2.299999999999999, 4.599999999999998, 6.799999999999996, 12.799999999999992, 26.399999999999984, 55.19999999999997, 110.39999999999993]
我们还可以使用偏移别名字符串设置 window_length 和 gap。
>>> rolling_trend = RollingTrend(window_length="4D", gap="1D") >>> rolling_trend(times, [1, 2, 4, 8, 16, 24, 48, 96, 192, 384]).tolist() [nan, nan, nan, 1.4999999999999998, 2.299999999999999, 4.599999999999998, 6.799999999999996, 12.799999999999992, 26.399999999999984, 55.19999999999997]
方法
__init__
([window_length, gap, min_periods])flatten_nested_input_types
(input_types)将嵌套的列模式输入展平为单个列表。
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
()属性
base_of
base_of_exclude
commutative
default_value
如果未找到数据,则此特征返回的默认值。
description_template
input_types
woodwork.ColumnSchema 输入类型
max_stack_depth
name
原语名称
number_output_features
与此特征关联的特征矩阵中的列数
return_type
ColumnSchema 返回类型
stack_on
stack_on_exclude
stack_on_self
uses_calc_time
uses_full_dataframe