时间序列生成工具

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')[源代码]

创建一个单变量、自回归的时间序列,其值使用指定的系数 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,TimeSeries 将有一个 pandas DatetimeIndex。如果传递了一个整数,TimeSeries 将有一个 pandas RangeIndex 索引。仅适用于 lengthend 之一。

  • end (Union[Timestamp, int, None]) – 可选地,返回索引的结束。仅在使用 startlength 时有效。如果设置了 startend 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选地,返回索引的长度。仅在使用 startend 时有效。

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

  • column_name (Optional[str, None]) – 可选地,返回的 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'>)[源代码]

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

参数
  • value (float) – TimeSeries 对象在每个索引处将假定的常量值。

  • start (Union[Timestamp, int, None]) – 返回的 TimeSeries 索引的起始点。如果传递了一个 pandas Timestamp,TimeSeries 将有一个 pandas DatetimeIndex。如果传递了一个整数,TimeSeries 将有一个 pandas RangeIndex 索引。仅适用于 lengthend 之一。

  • end (Union[Timestamp, int, None]) – 可选地,返回索引的结束。仅在使用 startlength 时有效。如果设置了 startend 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选地,返回索引的长度。仅在使用 startend 时有效。

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

  • column_name (Optional[str, None]) – 可选地,返回的 TimeSeries 的值列的名称

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

返回

一个值为 ‘value’ 的恒定时间序列。

返回类型

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)[源代码]

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

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.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html#pandas.DatetimeIndex

  • one_hot (bool) – 布尔值,指示是否将指定的属性作为独热编码添加(结果是更多的列)。

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

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

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

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

  • with_columns (Union[str, List[str], None]) – 可选地,指定输出组件名称。 * 如果 one_hotcyclicFalse,必须是一个字符串 * 如果 cyclicTrue,必须是一个包含两个字符串的列表。第一个字符串用于正弦,第二个用于余弦组件名称。 * 如果 one_hotTrue,必须是一个与生成的独热编码特征长度相同的字符串列表。

  • tz (Optional[str, None]) – 可选地,在计算属性之前,将时间索引转换为的时区。

返回

新的 datetime 属性时间序列实例。

返回类型

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'>)[源代码]

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

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

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

  • start (Union[Timestamp, int, None]) – 返回的 TimeSeries 索引的起始点。如果传递了一个 pandas Timestamp,TimeSeries 将有一个 pandas DatetimeIndex。如果传递了一个整数,TimeSeries 将有一个 pandas RangeIndex 索引。仅适用于 lengthend 之一。

  • end (Union[Timestamp, int, None]) – 可选地,返回索引的结束。仅在使用 startlength 时有效。如果设置了 startend 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选地,返回索引的长度。仅在使用 startend 时有效。

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

  • column_name (Optional[str, None]) – 可选地,返回的 TimeSeries 的值列的名称

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

返回

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

返回类型

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)[源代码]

创建一个二进制单变量时间序列,索引为 time_index,在每个位于(或等于)所选国家假日的索引处等于1,否则为0。

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

参数
  • time_index (Union[TimeSeries, DatetimeIndex]) – 生成假日的 pd.DatetimeIndexTimeSeries

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

  • prov (str) – 省份。

  • state (str) – 状态。

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

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

  • column_name (Optional[str, None]) – 可选地,返回的 TimeSeries 的值列的名称。

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

  • tz (Optional[str, None]) – 可选地,在生成假期之前将时间索引转换为的时区。

返回

一个新的二进制假日时间序列实例。

返回类型

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'>)[源代码]

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

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

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

  • start (Union[Timestamp, int, None]) – 返回的 TimeSeries 索引的起始点。如果传递了一个 pandas Timestamp,TimeSeries 将有一个 pandas DatetimeIndex。如果传递了一个整数,TimeSeries 将有一个 pandas RangeIndex 索引。仅适用于 lengthend 之一。

  • end (Union[Timestamp, int, None]) – 可选地,返回索引的结束。仅在使用 startlength 时有效。如果设置了 startend 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选地,返回索引的长度。仅在使用 startend 时有效。

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

  • column_name (Optional[str, None]) – 可选地,返回的 TimeSeries 的值列的名称

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

返回

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

返回类型

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'>)[源代码]

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

参数
  • mean (float) – 在每一步中采样的正态分布的均值。

  • std (float) – 在每一步中采样的正态分布的标准差。

  • start (Union[Timestamp, int, None]) – 返回的 TimeSeries 索引的起始点。如果传递了一个 pandas Timestamp,TimeSeries 将有一个 pandas DatetimeIndex。如果传递了一个整数,TimeSeries 将有一个 pandas RangeIndex 索引。仅适用于 lengthend 之一。

  • end (Union[Timestamp, int, None]) – 可选地,返回索引的结束。仅在使用 startlength 时有效。如果设置了 startend 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选地,返回索引的长度。仅在使用 startend 时有效。

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

  • column_name (Optional[str, None]) – 可选地,返回的 TimeSeries 的值列的名称

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

返回

按照上述指示创建的随机游走时间序列。

返回类型

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'>)[源代码]

创建一个具有给定频率、振幅、相位和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,TimeSeries 将有一个 pandas DatetimeIndex。如果传递了一个整数,TimeSeries 将有一个 pandas RangeIndex 索引。仅适用于 lengthend 之一。

  • end (Union[Timestamp, int, None]) – 可选地,返回索引的结束。仅在使用 startlength 时有效。如果设置了 startend 必须与 start 类型相同。否则,它可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选地,返回索引的长度。仅在使用 startend 时有效。

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

  • column_name (Optional[str, None]) – 可选地,返回的 TimeSeries 的值列的名称

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

返回

一个如上所述参数化的正弦时间序列。

返回类型

TimeSeries