时间序列生成工具

darts.utils.timeseries_generation.autoregressive_timeseries(coef, start_values=None, start=Timestamp('2000-01-01 00:00:00'), end=None, length=None, freq=None, column_name='autoregressive')[source]

创建一个单变量自回归时间序列 (TimeSeries),其值使用指定的系数 coef 和起始值 start_values 计算得出。

参数
  • coef (Sequence[float]) – 用于计算下一个时间步的自回归系数。series[t] = coef[-1] * series[t-1] + coef[-2] * series[t-2] + … + coef[0] * series[t-len(coef)]

  • start_values (Optional[Sequence[float], None]) – 用于计算前几个值的起始值,这些值还没有滞后项。series[0] = coef[-1] * starting_values[-1] + coef[-2] * starting_values[-2] + … + coef[0] * starting_values[0]

  • start (Union[Timestamp, int, None]) – 返回的时间序列 (TimeSeries) 的索引的起始点。如果传入 pandas Timestamp,时间序列将具有 pandas DatetimeIndex。如果传入整数,时间序列将具有 pandas RangeIndex 索引。仅与 lengthend 其中之一配合使用。

  • end (Union[Timestamp, int, None]) – 可选参数,返回索引的结束点。仅与 startlength 其中之一配合使用。如果设置了 start,则 end 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选参数,返回索引的长度。仅与 startend 其中之一配合使用。

  • freq (Union[str, int, None]) – 返回索引中两个相邻条目之间的时间差。如果 start 是时间戳,则期望使用 DateOffset 别名;参见 文档。默认情况下,使用“D”(每日)。如果 start 是整数,freq 将被解释为底层 RangeIndex 中的步长。对于生成整数索引,freq 是可选的(如果未指定,则使用 1)。

  • column_name (Optional[str, None]) – 可选参数,返回的时间序列 (TimeSeries) 的值列的名称

返回值

如上所述创建的自回归时间序列 (TimeSeries)。

返回类型

TimeSeries

darts.utils.timeseries_generation.constant_timeseries(value=1, start=Timestamp('2000-01-01 00:00:00'), end=None, length=None, freq=None, column_name='constant', dtype=<class 'numpy.float64'>)[source]

创建一个具有给定值、长度(或结束日期)、开始日期和频率的常数单变量时间序列 (TimeSeries)。

参数
  • value (float) – 时间序列 (TimeSeries) 对象在每个索引处将采用的常数值。

  • start (Union[Timestamp, int, None]) – 返回的时间序列 (TimeSeries) 的索引的起始点。如果传入 pandas Timestamp,时间序列将具有 pandas DatetimeIndex。如果传入整数,时间序列将具有 pandas RangeIndex 索引。仅与 lengthend 其中之一配合使用。

  • end (Union[Timestamp, int, None]) – 可选参数,返回索引的结束点。仅与 startlength 其中之一配合使用。如果设置了 start,则 end 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选参数,返回索引的长度。仅与 startend 其中之一配合使用。

  • freq (Union[str, int, None]) –

    返回索引中两个相邻条目之间的时间差。如果 start 是时间戳,则期望使用 DateOffset 别名;参见 文档。默认情况下,使用“D”(每日)。如果 start 是整数,freq 将被解释为底层 RangeIndex 中的步长。对于生成整数索引,freq 是可选的(如果未指定,则使用 1)。

  • column_name (Optional[str, None]) – 可选参数,返回的时间序列 (TimeSeries) 的值列的名称

  • dtype (dtype) – 结果序列所需的 NumPy 数据类型 (np.float32 或 np.float64)

返回值

值为 ‘value’ 的常数时间序列 (TimeSeries)。

返回类型

TimeSeries

darts.utils.timeseries_generation.datetime_attribute_timeseries(time_index, attribute, one_hot=False, cyclic=False, until=None, add_length=0, dtype=<class 'numpy.float64'>, with_columns=None, tz=None)[source]

返回一个新的时间序列 (TimeSeries),其索引为 time_index,并包含一个或多个维度,这些维度包含从索引派生的 (可选地进行独热编码或循环编码的) pd.DatatimeIndex 属性信息。

将基于 1 的索引属性进行移位,以确保所有编码都基于 0 索引。

参数
  • time_index (Union[DatetimeIndex, TimeSeries]) – 可以是 pd.DatetimeIndex 属性,它将作为新列的基础;或者是一个时间序列 (TimeSeries),其时间轴将用于此目的。

  • attribute (str) – pd.DatetimeIndex 的属性,或 week / weekofyear / week_of_year - 例如“month”、“weekday”、“day”、“hour”、“minute”、“second”。请参阅 https://pandas.ac.cn/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html#pandas.DatetimeIndex 中所有可用属性。

  • one_hot (bool) – 布尔值,指示是否将指定属性添加为独热编码(会导致列数增加)。

  • cyclic (bool) – 布尔值,指示是否将指定属性添加为循环编码。作为独热编码的替代方案,只需启用其中一个。(添加 2 列,对应于 sin 和 cos 变换)

  • until (Union[int, str, Timestamp, None]) – 将 time_index 扩展到指定时间戳(对于日期时间索引序列)或整数(对于范围索引序列),应与预测窗口匹配或超出预测窗口。

  • add_length (int) – 将 time_index 扩展 add_length 长度,应与预测窗口匹配或超出预测窗口。仅设置 until 和 add_length 中的一个。

  • dtype – 结果序列所需的 NumPy 数据类型 (np.float32 或 np.float64)

  • with_columns (Union[str, list[str], None]) –

    可选参数,指定输出分量名称。* 如果 one_hotcyclicFalse,必须是一个字符串 * 如果 cyclicTrue,必须是包含两个字符串的列表。第一个字符串用于正弦分量,第二个用于

    余弦分量名称。

    • 如果 one_hotTrue,必须是与生成的独热编码长度相同的字符串列表。

      特征。

  • tz (Optional[str, None]) – 可选参数,计算属性之前用于转换时间索引的时区。

返回值

新的日期时间属性时间序列 (TimeSeries) 实例。

返回类型

TimeSeries

darts.utils.timeseries_generation.gaussian_timeseries(mean=0.0, std=1.0, start=Timestamp('2000-01-01 00:00:00'), end=None, length=None, freq=None, column_name='gaussian', dtype=<class 'numpy.float64'>)[source]

通过独立地从均值为 mean,标准差为 std 的高斯分布中采样所有序列值,创建一个高斯单变量时间序列 (TimeSeries)。

参数
  • mean (Union[float, ndarray]) – 每个时间步采样的 Gausian 分布的均值。如果给定浮点值,则每个时间步使用相同的均值。如果给定与 length 长度相同的 numpy.ndarray 浮点数组,则每个时间步使用不同的均值。

  • std (Union[float, ndarray]) – 每个时间步采样的 Gaussian 分布的标准差。如果给定浮点值,则每个时间步使用相同的标准差。如果给定维度为 (length, length) 的数组,它将用作多元 Gaussian 分布的协方差矩阵。

  • start (Union[Timestamp, int, None]) – 返回的时间序列 (TimeSeries) 的索引的起始点。如果传入 pandas Timestamp,时间序列将具有 pandas DatetimeIndex。如果传入整数,时间序列将具有 pandas RangeIndex 索引。仅与 lengthend 其中之一配合使用。

  • end (Union[Timestamp, int, None]) – 可选参数,返回索引的结束点。仅与 startlength 其中之一配合使用。如果设置了 start,则 end 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选参数,返回索引的长度。仅与 startend 其中之一配合使用。

  • freq (Union[str, int, None]) –

    返回索引中两个相邻条目之间的时间差。如果 start 是时间戳,则期望使用 DateOffset 别名;参见 文档。默认情况下,使用“D”(每日)。如果 start 是整数,freq 将被解释为底层 RangeIndex 中的步长。对于生成整数索引,freq 是可选的(如果未指定,则使用 1)。

  • column_name (Optional[str, None]) – 可选参数,返回的时间序列 (TimeSeries) 的值列的名称

  • dtype (dtype) – 结果序列所需的 NumPy 数据类型 (np.float32 或 np.float64)

返回值

如上所述创建的白噪声时间序列 (TimeSeries)。

返回类型

TimeSeries

darts.utils.timeseries_generation.holidays_timeseries(time_index, country_code, prov=None, state=None, column_name='holidays', until=None, add_length=0, dtype=<class 'numpy.float64'>, tz=None)[source]

创建一个二元单变量时间序列 (TimeSeries),其索引为 time_index,在属于(或等于)选定国家/地区的假日的所有索引处值为 1,否则为 0。

可用的国家/地区可以在 这里 找到。

参数
  • time_index (Union[TimeSeries, DatetimeIndex]) – 可以是 pd.DatetimeIndex 或用于生成假日的时间序列 (TimeSeries)。

  • country_code (str) – 国家/地区 ISO 代码。

  • prov (Optional[str, None]) – 省份。

  • state (Optional[str, None]) – 州。

  • until (Union[int, str, Timestamp, None]) – 将 time_index 扩展到指定时间戳(对于日期时间索引序列)或整数(对于范围索引序列),应与预测窗口匹配或超出预测窗口。

  • add_length (int) – 将 time_index 扩展 add_length 长度,应与预测窗口匹配或超出预测窗口。仅设置 until 和 add_length 中的一个。

  • column_name (Optional[str, None]) – 可选参数,返回的时间序列 (TimeSeries) 的值列的名称。

  • dtype (dtype) – 结果序列所需的 NumPy 数据类型 (np.float32 或 np.float64)。

  • tz (Optional[str, None]) – 可选参数,生成假日之前用于转换时间索引的时区。

返回值

新的二元假日时间序列 (TimeSeries) 实例。

返回类型

TimeSeries

darts.utils.timeseries_generation.linear_timeseries(start_value=0, end_value=1, start=Timestamp('2000-01-01 00:00:00'), end=None, length=None, freq=None, column_name='linear', dtype=<class 'numpy.float64'>)[source]

创建一个单变量时间序列 (TimeSeries),其起始值为 start_value 并线性增加,使得在时间序列的最后一个条目处取值为 end_value。这意味着两个相邻条目之间的差值将等于 (end_value - start_value) / (length - 1)。

参数
  • start_value (float) – 时间序列 (TimeSeries) 中第一个条目的值。

  • end_value (float) – 时间序列 (TimeSeries) 中最后一个条目的值。

  • start (Union[Timestamp, int, None]) – 返回的时间序列 (TimeSeries) 的索引的起始点。如果传入 pandas Timestamp,时间序列将具有 pandas DatetimeIndex。如果传入整数,时间序列将具有 pandas RangeIndex 索引。仅与 lengthend 其中之一配合使用。

  • end (Union[Timestamp, int, None]) – 可选参数,返回索引的结束点。仅与 startlength 其中之一配合使用。如果设置了 start,则 end 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选参数,返回索引的长度。仅与 startend 其中之一配合使用。

  • freq (Union[str, int, None]) –

    返回索引中两个相邻条目之间的时间差。如果 start 是时间戳,则期望使用 DateOffset 别名;参见 文档。默认情况下,使用“D”(每日)。如果 start 是整数,freq 将被解释为底层 RangeIndex 中的步长。对于生成整数索引,freq 是可选的(如果未指定,则使用 1)。

  • column_name (Optional[str, None]) – 可选参数,返回的时间序列 (TimeSeries) 的值列的名称

  • dtype (dtype) – 结果序列所需的 NumPy 数据类型 (np.float32 或 np.float64)

返回值

如上所述创建的线性时间序列 (TimeSeries)。

返回类型

TimeSeries

darts.utils.timeseries_generation.random_walk_timeseries(mean=0.0, std=1.0, start=Timestamp('2000-01-01 00:00:00'), end=None, length=None, freq=None, column_name='random_walk', dtype=<class 'numpy.float64'>)[source]

创建一个随机游走单变量时间序列 (TimeSeries),其中每个步长通过从均值为 mean,标准差为 std 的高斯分布中采样获得。

参数
  • mean (float) – 每个时间步采样的 Gaussian 分布的均值。

  • std (float) – 每个时间步采样的 Gaussian 分布的标准差。

  • start (Union[Timestamp, int, None]) – 返回的时间序列 (TimeSeries) 的索引的起始点。如果传入 pandas Timestamp,时间序列将具有 pandas DatetimeIndex。如果传入整数,时间序列将具有 pandas RangeIndex 索引。仅与 lengthend 其中之一配合使用。

  • end (Union[Timestamp, int, None]) – 可选参数,返回索引的结束点。仅与 startlength 其中之一配合使用。如果设置了 start,则 end 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选参数,返回索引的长度。仅与 startend 其中之一配合使用。

  • freq (Union[str, int, None]) –

    返回索引中两个相邻条目之间的时间差。如果 start 是时间戳,则期望使用 DateOffset 别名;参见 文档。默认情况下,使用“D”(每日)。如果 start 是整数,freq 将被解释为底层 RangeIndex 中的步长。对于生成整数索引,freq 是可选的(如果未指定,则使用 1)。

  • column_name (Optional[str, None]) – 可选参数,返回的时间序列 (TimeSeries) 的值列的名称

  • dtype (dtype) – 结果序列所需的 NumPy 数据类型 (np.float32 或 np.float64)

返回值

如上所述创建的随机游走时间序列 (TimeSeries)。

返回类型

TimeSeries

darts.utils.timeseries_generation.sine_timeseries(value_frequency=0.1, value_amplitude=1.0, value_phase=0.0, value_y_offset=0.0, start=Timestamp('2000-01-01 00:00:00'), end=None, length=None, freq=None, column_name='sine', dtype=<class 'numpy.float64'>)[source]

创建一个单变量时间序列 (TimeSeries),其值以给定的频率、振幅、相位和 y 轴偏移量呈正弦曲线变化。

参数
  • value_frequency (float) – 在 freq 中给定的一个时间单位内发生的周期数。

  • value_amplitude (float) – 返回的时间序列 (TimeSeries) 的任何值与 y_offset 之间的最大差值。

  • value_phase (float) – 返回的时间序列 (TimeSeries) 的第一个值在一个周期内的相对位置(以弧度为单位)。

  • value_y_offset (float) – 正弦函数沿 y 轴的偏移量。

  • start (Union[Timestamp, int, None]) – 返回的时间序列 (TimeSeries) 的索引的起始点。如果传入 pandas Timestamp,时间序列将具有 pandas DatetimeIndex。如果传入整数,时间序列将具有 pandas RangeIndex 索引。仅与 lengthend 其中之一配合使用。

  • end (Union[Timestamp, int, None]) – 可选参数,返回索引的结束点。仅与 startlength 其中之一配合使用。如果设置了 start,则 end 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选参数,返回索引的长度。仅与 startend 其中之一配合使用。

  • freq (Union[str, int, None]) –

    返回索引中两个相邻条目之间的时间差。如果 start 是时间戳,则期望使用 DateOffset 别名;参见 文档。默认情况下,使用“D”(每日)。如果 start 是整数,freq 将被解释为底层 RangeIndex 中的步长。对于生成整数索引,freq 是可选的(如果未指定,则使用 1)。

  • column_name (Optional[str, None]) – 可选参数,返回的时间序列 (TimeSeries) 的值列的名称

  • dtype (dtype) – 结果序列所需的 NumPy 数据类型 (np.float32 或 np.float64)

返回值

如上所述参数化的正弦时间序列 (TimeSeries)。

返回类型

TimeSeries