gluonts.transform 包#
- class gluonts.transform.AddAgeFeature(target_field: str, output_field: str, pred_length: int, log_scale: bool = True, dtype: typing.Type = <class 'numpy.float32'>)[source]#
Bases:
gluonts.transform._base.MapTransformation
向 data_entry 添加“年龄”特征。
年龄特征在时间序列的开始处以一个较小的值开始,并随时间增长。
如果 is_train=True,年龄特征的长度与 target 字段的长度相同。如果 is_train=False,年龄特征的长度为 len(target) + pred_length。
- 参数
target_field – 时间序列目标值(数组)字段
output_field – 用于输出的字段名。
pred_length – 预测长度
log_scale – 如果设置为 true,年龄特征随时间呈对数增长,否则呈线性增长。
- class gluonts.transform.AddAggregateLags(target_field: str, output_field: str, pred_length: int, base_freq: str, agg_freq: str, agg_lags: typing.List[int], agg_fun: str = 'mean', dtype: typing.Type = <class 'numpy.float32'>)[source]#
Bases:
gluonts.transform._base.MapTransformation
向 data_entry 添加聚合滞后项作为特征。
将原始时间序列聚合到新频率,并选择感兴趣的聚合滞后项。它不使用需要最后 prediction_length 个值来计算的聚合滞后项。因此,该转换适用于训练和推理。
如果 is_train=True,滞后项的长度与 target 字段的长度相同。如果 is_train=False,滞后项的长度为 len(target) + pred_length。
- 参数
target_field – 时间序列目标值(数组)字段
output_field – 用于输出的字段名。
pred_length – 预测长度。
base_freq – 基本频率,即原始时间序列的频率。
agg_freq – 聚合频率,即聚合时间序列的频率。
agg_lags – 以聚合频率给出的聚合滞后项列表。如果其中一些无效(需要使用最后 prediction_length 个值进行计算),则会忽略它们。
agg_fun – 聚合函数。默认为 'mean'。
- class gluonts.transform.AddConstFeature(output_field: str, target_field: str, pred_length: int, const: float = 1.0, dtype: typing.Type = <class 'numpy.float32'>)[source]#
Bases:
gluonts.transform._base.MapTransformation
沿时间轴将 const 值扩展为动态特征,其中 T 维度定义为 pred_length 参数与由 target_field 指定的时间序列长度之和。
如果 is_train=True,特征矩阵的长度与 target 字段的长度相同。如果 is_train=False,特征矩阵的长度为 len(target) + pred_length。
- 参数
output_field – 输出的字段名。
target_field – 包含目标数组的字段。将使用此数组的长度。
pred_length – 预测长度(这是必需的,因为特征必须在未来可用)
const – 要使用的常量值。
dtype – 用于结果数组的 Numpy dtype。
- class gluonts.transform.AddObservedValuesIndicator(target_field: str, output_field: str, imputation_method: typing.Optional[gluonts.transform.feature.MissingValueImputation] = gluonts.transform.feature.DummyValueImputation(dummy_value=0.0), dtype: typing.Type = <class 'numpy.float32'>)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
用一个虚拟值替换 numpy 数组(NaNs)中的缺失值,并添加一个“观察值”指示器,当值被观察到时为
1
,当值缺失时为0
。- 参数
target_field – 将替换缺失值的字段
output_field – 用于指示器的字段名
imputation_method – ImputationStrategy 中的一种方法。如果设置为 None,则不进行插补,只包含指示器。
- class gluonts.transform.AddTimeFeatures(start_field: str, target_field: str, output_field: str, time_features: typing.List[typing.Callable[[pandas.core.indexes.period.PeriodIndex], numpy.ndarray]], pred_length: int, dtype: typing.Type = <class 'numpy.float32'>)[source]#
Bases:
gluonts.transform._base.MapTransformation
添加一组时间特征。
如果 is_train=True,特征矩阵的长度与 target 字段的长度相同。如果 is_train=False,特征矩阵的长度为 len(target) + pred_length。
- 参数
start_field – 包含时间序列开始时间戳的字段
target_field – 包含时间序列值数组的字段
output_field – 结果的字段名。
time_features – 要使用的时间特征列表。
pred_length – 预测长度
- class gluonts.transform.AdhocTransform(func: Callable[[Dict[str, Any]], Dict[str, Any]])[source]#
Bases:
gluonts.transform._base.SimpleTransformation
将函数应用为转换。这被称为 ad-hoc(临时),因为它不可序列化。
可以在实验中使用,但不能在需要序列化的模型流水线外部使用。
- class gluonts.transform.AsNumpyArray(field: str, expected_ndim: int, dtype: typing.Type = <class 'numpy.float32'>)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
将字段的值转换为 numpy 数组。
- 参数
expected_ndim – 预期的维度数量。如果维度数量不匹配,则抛出异常。
dtype – 要使用的 numpy dtype。
- class gluonts.transform.BucketInstanceSampler(*, axis: int = - 1, min_past: int = 0, min_future: int = 0, scale_histogram: gluonts.dataset.stat.ScaleHistogram)[source]#
Bases:
gluonts.transform.sampler.InstanceSampler
此采样器可用于处理具有偏斜分布的时间序列集合。例如,如果数据集中包含许多值较小而值较大的时间序列较少。
从桶 i 中采样的概率是其元素数量的倒数。
- 参数
scale_histogram (gluonts.dataset.stat.ScaleHistogram) – 时间序列的规模直方图。这里的规模是时间序列的平均绝对值。
- scale_histogram: gluonts.dataset.stat.ScaleHistogram#
- class gluonts.transform.CDFtoGaussianTransform(target_dim: int, target_field: str, observed_values_field: str, cdf_suffix='_cdf', max_context_length: typing.Optional[int] = None, dtype: typing.Type = <class 'numpy.float32'>)[source]#
Bases:
gluonts.transform._base.MapTransformation
通过经验 CDF 将目标转换为标准高斯的边缘转换,详情请参阅:https://arxiv.org/abs/1910.03002。
与多元高斯结合使用以形成 Copula。请注意,此转换目前仅适用于多元目标。
- static winsorized_cutoff(m: float) float [source]#
对经验 CDF 估计器应用截断以减少方差,详情请参阅:https://arxiv.org/abs/0903.0649。
- 参数
m – 输入的经验 CDF 值。
- 返回值
截断后的经验 CDF 值。
- 返回值类型
res
- class gluonts.transform.CanonicalInstanceSplitter(target_field: str, is_pad_field: str, start_field: str, forecast_start_field: str, instance_sampler: gluonts.transform.sampler.InstanceSampler, instance_length: int, output_NTC: bool = True, time_series_fields: List[str] = [], allow_target_padding: bool = False, pad_value: float = 0.0, use_prediction_features: bool = False, prediction_length: Optional[int] = None)[source]#
Bases:
gluonts.transform._base.FlatMapTransformation
选择实例,通过在训练模式下随机点或预测模式下最后时间点切片目标和其他类似时间序列的数组。假设所有类似时间的数组都从同一时间点开始。
在训练模式下,返回的实例包含 past_`target_field` 以及 past_`time_series_fields`。
在预测模式下,可以设置 use_prediction_features 以获取 future_`time_series_fields`。
如果目标数组是一维的,则结果实例中的 target_field 的形状为 (instance_length)。在多维情况下,实例的形状为 (dim, instance_length),其中 dim 也可以取值为 1。
如果时间序列值数量不足,该转换还会添加一个字段 'past_is_pad',指示值是否被填充,并且该值用默认值为 0 的 default_pad_value 填充。这仅在 allow_target_padding 为 True 且 target 的长度小于 instance_length 时进行。
- 参数
target_field – 包含时间序列的字段
is_pad_field – 指示是否发生填充的输出字段
start_field – 包含时间序列开始日期的字段
forecast_start_field – 包含预测开始日期的字段
instance_sampler – 根据时间序列提供采样索引的实例采样器
instance_length – 在进行预测之前看到的目标长度
output_NTC – 时间序列输出采用 (时间, 维度) 布局还是 (维度, 时间) 布局
time_series_fields – 包含时间序列的字段,它们与目标在相同间隔内进行切分
allow_target_padding – 允许填充的标志
pad_value – 用于填充的值
use_prediction_features – 指示是否应返回预测范围特征的标志
prediction_length – 预测范围的长度,如果 use_prediction_features 为 True,则必须设置
- class gluonts.transform.CausalMeanValueImputation[source]#
Bases:
gluonts.transform.feature.MissingValueImputation
此类将每个缺失值替换为此之前所有值的平均值。
(如果前几个值缺失,则用最接近的非缺失值替换它们。)
- class gluonts.transform.Chain(transformations: List[gluonts.transform._base.Transformation])[source]#
Bases:
gluonts.transform._base.Transformation
将多个转换链接在一起。
- transformations: List[gluonts.transform._base.Transformation]#
- class gluonts.transform.ConcatFeatures(output_field: str, input_fields: List[str], drop_inputs: bool = True)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
使用
np.concatenate
将字段连接在一起。值为
None
的字段将被忽略。- 参数
output_field – 用于输出的字段名
input_fields – 要堆叠在一起的字段
drop_inputs – 如果设置为 true,则输入字段将被删除。
- class gluonts.transform.ContinuousTimeInstanceSplitter(past_interval_length: float, future_interval_length: float, freq: pandas._libs.tslibs.offsets.BaseOffset, instance_sampler: gluonts.transform.sampler.ContinuousTimePointSampler, target_field: str = 'target', start_field: str = 'start', end_field: str = 'end', forecast_start_field: str = 'forecast_start')[source]#
Bases:
gluonts.transform._base.FlatMapTransformation
通过从连续时间过程实例化中切分“间隔”来选择训练实例。具体来说,输入数据预期描述一个点(或跳跃)过程的实例化,其中“目标”标识点间到达时间和其它特征(标记),详细描述如下。
切分器将从每个给定观测中提取连续时间中的随机点,并返回一个(可变长度的)过去(上下文)和未来(预测)间隔内的点数组。
该转换类似于其离散对应项 InstanceSplitter,不同之处在于
它不允许“不完整的”记录。也就是说,采样的过去和未来间隔始终是完整的。
输出 (T, C) 布局。
不接受 time_series_fields(即只接受目标字段),因为这些字段通常在 TPP 数据中不可用。
目标数组预期具有 (2, T) 布局,其中第一个轴对应于 (i) 连续点之间的点间到达时间(按顺序)和 (ii) 标记的整数标识符(从 {0, 1, …,
num_marks
})。返回的数组将具有 (T, 2) 布局。例如,下面的数组对应于一个目标数组,其中时间戳为 0.5、1.1 和 1.5 的点被观察到,分别属于类别(标记)3、1 和 0:
[[0.5, 0.6, 0.4], [3, 1, 0]]
。- 参数
past_interval_length – 在进行预测之前看到的间隔长度
future_interval_length – 必须预测的间隔长度
train_sampler – 根据时间序列提供采样索引的实例采样器
target_field – 包含目标的字段
start_field – 包含点过程观测开始日期的字段
end_field – 包含点过程观测结束日期的字段
forecast_start_field – 将包含预测开始时间点的输出字段
- class gluonts.transform.ContinuousTimePointSampler(*, min_past: float = 0.0, min_future: float = 0.0)[source]#
Bases:
pydantic.v1.main.BaseModel
“连续时间”采样器的抽象类,给定下界和上界,从指定间隔内采样连续时间中的“点”(事件)。
- min_future: float#
- min_past: float#
- class gluonts.transform.ContinuousTimePredictionSampler(*, min_past: float = 0.0, min_future: float = 0.0, allow_empty_interval: bool = False)[source]#
Bases:
gluonts.transform.sampler.ContinuousTimePointSampler
- allow_empty_interval: bool#
- class gluonts.transform.ContinuousTimeUniformSampler(*, min_past: float = 0.0, min_future: float = 0.0, num_instances: int)[source]#
Bases:
gluonts.transform.sampler.ContinuousTimePointSampler
实现一个简单的随机采样器,用于在连续间隔
a
和b
之间采样点。- num_instances: int#
- class gluonts.transform.DummyValueImputation(dummy_value: float = 0.0)[source]#
Bases:
gluonts.transform.feature.MissingValueImputation
此类将所有缺失值替换为预先给定的相同虚拟值。
- class gluonts.transform.ExpandDimArray(field: str, axis: Optional[int] = None)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
在指定轴上扩展维度,如果轴不存在则不做任何操作。(这本质上调用了 np.expand_dims)
- 参数
field – 要在字典中使用的字段
axis – 要扩展的轴(详细信息请参阅 np.expand_dims)
- class gluonts.transform.ExpectedNumInstanceSampler(*, axis: int = - 1, min_past: int = 0, min_future: int = 0, num_instances: float, min_instances: int = 0, total_length: int = 0, n: int = 0)[source]#
Bases:
gluonts.transform.sampler.InstanceSampler
跟踪平均时间序列长度并调整每个时间点的概率,使得平均每条时间序列生成 num_instances 个训练样本。
- 参数
num_instances (float) – 平均每条时间序列要采样的点数量
min_instances (int) – 每条时间序列要采样的最小点数量
- min_instances: int#
- n: int#
- num_instances: float#
- total_length: int#
- class gluonts.transform.FlatMapTransformation[source]#
Bases:
gluonts.transform._base.Transformation
每个输入产生零个或多个结果,但不组合输入流中的元素的转换。
- class gluonts.transform.InstanceSampler(*, axis: int = - 1, min_past: int = 0, min_future: int = 0)[source]#
Bases:
pydantic.v1.main.BaseModel
InstanceSampler 被调用时带有时序数据
ts
,并返回一组用于生成训练实例的索引。采样得到的索引
i
满足a <= i <= b
,其中a = min_past
,b = ts.shape[axis] - min_future
。- axis: int#
- min_future: int#
- min_past: int#
- class gluonts.transform.InstanceSplitter(target_field: str, is_pad_field: str, start_field: str, forecast_start_field: str, instance_sampler: gluonts.transform.sampler.InstanceSampler, past_length: int, future_length: int, lead_time: int = 0, output_NTC: bool = True, time_series_fields: List[str] = [], dummy_value: float = 0.0)[source]#
Bases:
gluonts.transform._base.FlatMapTransformation
通过在指定采样器选择的时间点对目标和其他时序字段进行切片,从数据集中分割实例。假定所有时序字段都从同一时间点开始。
假定时序轴始终是最后一个轴。
移除
target_field
和time_series_fields
中的每个字段,并将其替换为两个新字段,分别以 past_ 和 future_ 为前缀。还添加了
past_is_pad
,用于指示给定时间点的值是否为填充值。- 参数
target_field – 包含目标的字段
is_pad_field – 指示是否发生填充的输出字段
start_field – 包含时间序列开始日期的字段
forecast_start_field – 将包含预测开始时间点的输出字段
instance_sampler – 根据时间序列提供采样索引的实例采样器
past_length – 进行预测之前可见的目标长度
future_length – 必须预测的目标长度
lead_time – 过去窗口和未来窗口之间的间隔(默认值:0)
output_NTC – 时序输出是采用 (时间, 维度) 还是 (维度, 时间) 布局(默认值:True)
time_series_fields – 包含时序数据的字段,它们与目标在相同的间隔内进行切片(默认值:None)
dummy_value – 用于填充的值。(默认值:0.0)
- class gluonts.transform.LastValueImputation[source]#
Bases:
gluonts.transform.feature.MissingValueImputation
此类将每个缺失值替换为最后一个非缺失值。
(如果前几个值缺失,则用最接近的非缺失值替换它们。)
- class gluonts.transform.LeavesMissingValues[source]#
Bases:
gluonts.transform.feature.MissingValueImputation
仅保留缺失值不变。
- class gluonts.transform.ListFeatures(output_field: str, input_fields: List[str], drop_inputs: bool = True)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
创建一个包含特征列表的新字段。
- 参数
output_field – 输出字段名称
input_fields – 要组合成列表的字段
drop_inputs – 如果为 true,则输入字段将从结果中移除。
- class gluonts.transform.MapTransformation[source]#
Bases:
gluonts.transform._base.Transformation
转换的基类,为流中的每个输入返回恰好一个结果。
- class gluonts.transform.MeanValueImputation[source]#
Bases:
gluonts.transform.feature.MissingValueImputation
此类将所有缺失值替换为非缺失值的平均值。
请注意,这并不是一种“因果”方法,因为它在插值过程中会泄露有关未来的信息。您可能更倾向于使用 CausalMeanValueImputation。
- class gluonts.transform.NumInstanceSampler(*, axis: int = - 1, min_past: int = 0, min_future: int = 0, N: int)[source]#
Bases:
gluonts.transform.sampler.InstanceSampler
从每个序列中采样 N 个时间点。
- 参数
N (int) – 从每个时序中采样的时间点数量。
- N: int#
- class gluonts.transform.QuantizeMeanScaled(bin_edges: List[float], past_target_field: str = 'past_target', past_observed_values_field: str = 'past_observed_values', future_target_field: str = 'future_target', scale_field: str = 'scale')[source]#
Bases:
gluonts.transform._base.SimpleTransformation
对目标变量进行重新缩放和量化。需要存在 past_target_field 和 future_target_field。
使用 past_target 的平均绝对值来重新缩放 past_target 和 future_target。然后使用 bin_edges 对重新缩放的目标进行量化。
计算出的比例存储在 scale_field 中。
- 参数
bin_edges – 量化的 bin 边缘。
past_target_field – 包含 past_target 的字段名称,默认值为“past_target”
optional – 包含 past_target 的字段名称,默认值为“past_target”
past_observed_values_field – 包含 past_observed_values 的字段名称,默认值为“past_observed_values”
optional – 包含 past_observed_values 的字段名称,默认值为“past_observed_values”
future_target_field – 包含 future_target 的字段名称,默认值为“future_target”
optional – 包含 future_target 的字段名称,默认值为“future_target”
scale_field – 存储比例的字段名称,默认值为“scale”
optional – 存储比例的字段名称,默认值为“scale”
- class gluonts.transform.RemoveFields(field_names: List[str])[source]#
Bases:
gluonts.transform._base.SimpleTransformation
如果存在,移除字段名称。
- 参数
field_names – 要移除的字段名称列表
- class gluonts.transform.RenameFields(mapping: Dict[str, str])[source]#
Bases:
gluonts.transform._base.SimpleTransformation
如果源字段存在,则使用映射重命名字段。
- 参数
mapping – 名称映射 input_name -> output_name
- class gluonts.transform.RollingMeanValueImputation(window_size: int = 10)[source]#
Bases:
gluonts.transform.feature.MissingValueImputation
此类将每个缺失值替换为最后 window_size (默认值=10) 个值的平均值。
(如果前几个值缺失,则用最接近的非缺失值替换它们。)
- class gluonts.transform.SampleTargetDim(field_name: str, target_field: str, observed_values_field: str, num_samples: int, shuffle: bool = True)[source]#
Bases:
gluonts.transform._base.FlatMapTransformation
在训练时从目标中采样随机维度。
- class gluonts.transform.SelectFields(input_fields: List[str], allow_missing: bool = False)[source]#
Bases:
gluonts.transform._base.MapTransformation
仅保留列出的字段。
- 参数
input_fields – 要保留的字段列表。
allow_missing – 如果为
True
,则跳过任何缺失字段。默认值:False
。
- class gluonts.transform.SetField(output_field: str, value: Any)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
使用给定值设置字典中的一个字段。
- 参数
output_field – 将要设置的字段名称
value – 要设置的值
- class gluonts.transform.SetFieldIfNotPresent(field: str, value: Any)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
如果字典中不存在该字段,则使用给定值设置该字段。
- 参数
output_field – 将要设置的字段名称
value – 要设置的值
- class gluonts.transform.SimpleTransformation[source]#
Bases:
gluonts.transform._base.MapTransformation
在训练和测试模式下相同的逐元素转换。
- class gluonts.transform.SwapAxes(input_fields: List[str], axes: Tuple[int, int])[source]#
Bases:
gluonts.transform._base.SimpleTransformation
对字段应用
np.swapaxes
。- 参数
input_fields – 要应用的字段
axes – 要使用的轴
- class gluonts.transform.TargetDimIndicator(field_name: str, target_field: str)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
目标维度的标签编码。
- gluonts.transform.TestSplitSampler(axis: int = - 1, min_past: int = 0) gluonts.transform.sampler.PredictionSplitSampler [source]#
- class gluonts.transform.Transformation[source]#
基类:
object
所有转换的基类。
转换对字典流(迭代器)进行处理。
- apply(dataset: gluonts.dataset.Dataset, is_train: bool = True) gluonts.transform._base.TransformedDataset [source]#
- class gluonts.transform.TransformedDataset(base_dataset: gluonts.dataset.Dataset, transformation: gluonts.transform._base.Transformation, is_train=True)[source]#
-
一个数据集,对应于对 base_dataset 中的每个元素应用一系列转换。这仅支持 SimpleTransformations,它们在预测和训练时执行相同操作。
- 参数
base_dataset – 要转换的数据集
transformations – 要应用的转换列表
- class gluonts.transform.UniformSplitSampler(*, axis: int = - 1, min_past: int = 0, min_future: int = 0, p: float)[source]#
Bases:
gluonts.transform.sampler.InstanceSampler
以相同的固定概率采样每个点。
- 参数
p (float) – 选择时间点的概率
- p: float#
- gluonts.transform.ValidationSplitSampler(axis: int = - 1, min_past: int = 0, min_future: int = 0) gluonts.transform.sampler.PredictionSplitSampler [source]#
- class gluonts.transform.VstackFeatures(output_field: str, input_fields: List[str], drop_inputs: bool = True, h_stack: bool = False)[source]#
Bases:
gluonts.transform._base.SimpleTransformation
当 h_stack = False 时使用
np.vstack
堆叠字段。否则使用np.hstack
堆叠字段。值为
None
的字段将被忽略。- 参数
output_field – 用于输出的字段名
input_fields – 要堆叠在一起的字段
drop_inputs – 如果设置为 true,则输入字段将被删除。
h_stack – 水平堆叠而不是垂直堆叠