paddlets.transform.base
- class BaseTransform[源代码]
基类:
object所有数据转换类的基础类(在该模块中命名为 transformers)。
任何用于时序数据转换(如:
transform.MinMaxScaler)的类均可以继承自此基类, 并实现fit(),transform()和fit_transform()方法。- abstract fit(dataset: TSDataset)[源代码]
从给定数据集中学习transformer所需的参数。
任何继承自此类的非抽象子类均需实现此方法。
该方法训练的参数和具体的transformer有关。举例来说,MinMaxScaler 需要计算 最大值(MAX)和最小值(MIN),同时 StandardScaler 需要计算均值(MEAN)和标准偏差(standard deviation)。
- 参数
dataset (TSDataset) – 用于训练transformer的数据集。
- abstract transform(dataset: TSDataset, inplace: bool = False) TSDataset[源代码]
将训练完成的transformer应用于给定数据集。
任何继承自此类的非抽象子类均需实现此方法。
- abstract fit_transform(dataset: TSDataset, inplace: bool = False) TSDataset[源代码]
将训练和转换合并在一个方法中。该方法首先训练transformer,然后将训练完成的transformer应用到给定数据集上。
任何继承自此类的非抽象子类均需实现此方法。
- inverse_transform(dataset: TSDataset, inplace: bool = False) TSDataset[源代码]
transform 方法的逆向转换方法。
与其他抽象方法不同的是,该方法并没有被 abc.abstractmethod 装饰器装饰。这样做的原因是并非所有的时序数据转换都可以被逆向转换回原来的形式,因此,我们认为不可能、也无法强制要求所有继承自此基类的子类都实现该方法。
通常来说,一些诸如 Pipeline 在内的其他模块可能在不知道被调用的transform实例是否已经实现该方法的前提下调用此方法。为了解决此问题,我们没有使用 pass 表达式作为该基类方法的默认占位符,而是抛出了一个 NotImplementedError 错误。这个抛出的错误使得调用者可以使用 try-except 机制去识别那些没有实现该方法的 transform 实例。