paddlets.pipeline.pipeline

class Pipeline(steps: List[Tuple[object, str]])[源代码]

基类:Trainable

Pipeline 被用于构建一个时序建模机器学习工作流,它可以包含若干个特征工程方法与一个学习器。

注意: 学习器是可选的,可构建仅存在特征工程方法的 Pipeline 。

参数

steps (List[Tuple[object, str]]) – 包含若干个特征工程方法与一个学习器的列表。构建方法参考下方案例:

实际案例

>>> ...
>>> ksigma_params = {"cols":['example_columns'], "k": 0.5}
>>> mlp_params = {'in_chunk_len': 7, 'out_chunk_len': 3, 'skip_chunk_len': 0, 'eval_metrics': ["mse", "mae"]}
>>> pipeline = Pipeline([(KSigma, ksigma_params), (TimeFeatureGenerator, {}), (MLPRegressor, mlp_params)])
fit(train_tsdataset: TSDataset, valid_tsdataset: Optional[TSDataset] = None)[源代码]

逐一拟合 Pipeline 中的特征工程方法,并对数据进行 transform,然后拟合学习器。

参数
  • train_tsdataset (TSDataset) – TSDataset训练集。

  • valid_tsdataset (TSDataset, optional) – TSDataset验证集。

返回

对于各个特征工程方法与学习器都完成了拟合的 Pipeline 。

返回类型

Pipeline

transform(tsdataset: TSDataset, inplace: bool = False) TSDataset[源代码]

利用 Pipeline 中已拟合过的特征工程方法 transform 输入的 TSDataset 时序数据集。

参数
  • tsdataset (TSDataset) – 被处理的数据集。

  • inplace (bool) – 若设置为True,则会执行一个就地转换,并避免一次数据拷贝。默认值为False。

返回

处理完成的数据集。

返回类型

TSDataset

inverse_transform(tsdataset: TSDataset, inplace: bool = False) TSDataset[源代码]

此方法是 self.transform 的逆向转换方法。利用 Pipeline 中已拟合过的特征工程方法 inverse_transform 输入的 TSDataset。注意:并非所有的特征工程方法都实现了 inverse_transform, 若某个没有实现 inverse_transform,则不会对数据进行逆处理。

参数
  • tsdataset (TSDataset) – 被逆向转换的数据集。

  • inplace (bool) – 若设置为True,则会执行一个就地转换,并避免一次数据拷贝。默认值为False。

返回

完成逆向转换的数据集

返回类型

TSDataset

predict(tsdataset: TSDataset) TSDataset[源代码]

利用 Pipeline 中已拟合过的特征工程方法 transform 输入的 TSDataset 时序数据集,并利用已拟合过的学习器执行预测。注意:此方法仅在模型存在时可用。

参数

tsdataset (TSDataset) – 被预测的数据集。

返回

预测结果。

返回类型

TSDataset

predict_proba(tsdataset: TSDataset) TSDataset[源代码]

利用 Pipeline 中已拟合过的特征工程方法 transform 输入的 TSDataset 时序数据集,并利用已拟合过的学习器执行概率预测。注意:此方法仅在模型存在时可用。

参数

tsdataset (TSDataset) – 被预测的数据集。

返回

概率预测结果。

返回类型

TSDataset

recursive_predict(tsdataset: TSDataset, predict_length: int) TSDataset[源代码]

递归预测:一步步利用 self.predict 方法实现多步时序预测。当前时刻的预测结果会被添加至 TSDataset 时序数据集的目标列中,并在模型预测时,被添加至历史目标值的滑动窗口中用于下一时刻预测。注意:每次调用 self.predict 的输出长度为 out_chunk_len, 所以 self.predict 会被调用 ceiling(predict_length/out_chunk_len) 次,以满足多步时序的输出长度需求。

参数
  • tsdataset (TSDataset) – 被预测的数据集。

  • predict_length (int) – 递归多步预测的长度。

返回

预测结果。

返回类型

TSDataset

recursive_predict_proba(tsdataset: TSDataset, predict_length: int) TSDataset[源代码]

递归预测:一步步利用 self.predict_proba 方法实现多步时序预测。当前时刻的预测结果会被添加至 TSDataset 时序数据集的目标列中,并在模型预测时,被添加至历史目标值的滑动窗口中用于下一时刻预测。注意:每次调用 self.predict_proba 的输出长度为 out_chunk_len, 所以 self.predict_proba 会被调用 ceiling(predict_length/out_chunk_len) 次,以满足多步时序的输出长度需求。

参数
  • tsdataset (TSDataset) – 被预测的数据集。

  • predict_length (int) – 递归多步预测的长度。

返回

预测结果。

返回类型

TSDataset

save(path: str, pipeline_file_name: str = 'pipeline-partial.pkl', model_file_name: str = 'paddlets_model')[源代码]

将 Pipeline 保存至指定目录中。

参数
  • path (str) – 输出目录

  • pipeline_file_name (str) – PipeLine 对象的名称。此文件包含若干特征工程方法和 Pipeline 的元信息。

  • model_file_name (str) – Model 对象的名称。详细信息请参考 BaseModel 的 save() 方法。

classmethod load(path: str, pipeline_file_name: str = 'pipeline-partial.pkl', model_file_name: str = 'paddlets_model')[源代码]

从目录中加载一个 Pipeline 。

参数
  • path (str) – 输入目录

  • pipeline_file_name (str) – PipeLine 对象的名称。此文件包含若干特征工程方法和 Pipeline 的元信息。

  • model_file_name (str) – Model 对象的名称。详细信息请参考 BaseModel 的 save() 方法。

返回

被加载的 Pipeline 对象。

返回类型

Pipeline