paddlets.models.ml_model_wrapper

class MLModelBaseWrapper(model_class: Type, in_chunk_len: int, out_chunk_len: int = 1, skip_chunk_len: int = 0, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, fit_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None)[源代码]

基类:MLBaseModel

用于将第三方模型封装为时序模型的基类。

参数
  • model_class (Type) – 第三方模型类的类型。

  • in_chunk_len (int) – 模型输入的时间序列长度。

  • out_chunk_len (int) – 模型输出的时间序列长度。

  • skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。

  • sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。

  • model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。

  • fit_params (Dict[str, Any], optional) – 第三方模型的fit接口接收的所有参数,训练集数据除外。

  • predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。

class SklearnModelWrapper(model_class: Type, in_chunk_len: int, out_chunk_len: int, skip_chunk_len: int = 0, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, fit_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None, udf_ml_dataloader_to_fit_ndarray: Optional[Callable] = None, udf_ml_dataloader_to_predict_ndarray: Optional[Callable] = None)[源代码]

基类:MLModelBaseWrapper

用于将sklearn第三方模型封装为时序模型的基类。

参数
  • model_class (Type) – 第三方模型类的类型。

  • in_chunk_len (int) – 模型输入的时间序列长度。

  • out_chunk_len (int) – 模型输出的时间序列长度。

  • skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。

  • sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。

  • model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。

  • fit_params (Dict[str, Any], optional) – 第三方模型的fit接口接收的所有参数,训练集数据除外。

  • predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。

  • udf_ml_dataloader_to_fit_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。

  • udf_ml_dataloader_to_predict_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`predict`接口可接收的 numpy.ndarray 类型数据。

fit(train_data: TSDataset, valid_data: Optional[TSDataset] = None) None[源代码]

训练一个机器学习模型。

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

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

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

预测。

参数

tsdataset (TSDataset) – 待预测的时序数据集。

返回

包含预测结果的时序数据集。

返回类型

TSDataset

default_sklearn_ml_dataloader_to_fit_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int, skip_chunk_len: int, out_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]

默认的转换函数,用于将一个 MLDataLoader 对象转换为sklearn第三方模型`fit`接口可接收的 numpy.ndarray 类型数据。

参数
  • ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。

  • model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。

  • in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。

  • skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。转换期间可能会用到。

  • out_chunk_len (int) – 模型输出的时间序列长度。在数据转换时可能会用到。

返回

转换得到的 numpy array 数据。元组的第一、第二个元素分别代表x_train 和 y_train。

返回类型

Tuple[np.ndarray, Optional[np.ndarray]]

default_sklearn_ml_dataloader_to_predict_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int, skip_chunk_len: int, out_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]

默认的转换函数,用于将一个 MLDataLoader 对象转换为sklearn第三方模型`predict`接口可接收的 numpy.ndarray 类型数据。

参数
  • ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。

  • model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。

  • in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。

  • skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。转换期间可能会用到。

  • out_chunk_len (int) – 模型输出的时间序列长度。在数据转换时可能会用到。

返回

转换得到的 numpy array 数据。元组的第一、第二个元素分别代表 x 和 y,其中 y 可能为None。

返回类型

Tuple[np.ndarray, Optional[np.ndarray]]

class PyodModelWrapper(model_class: Type, in_chunk_len: int, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None, udf_ml_dataloader_to_fit_ndarray: Optional[Callable] = None, udf_ml_dataloader_to_predict_ndarray: Optional[Callable] = None)[源代码]

基类:MLModelBaseWrapper

用于将pyod第三方模型封装为时序模型的基类。

参数
  • model_class (Type) – 第三方模型类的类型。

  • in_chunk_len (int) – 模型输入的时间序列长度。

  • sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。

  • model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。

  • predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。

  • udf_ml_dataloader_to_fit_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。

  • udf_ml_dataloader_to_predict_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`predict`接口可接收的 numpy.ndarray 类型数据。

predict_score(tsdataset: TSDataset) ndarray[源代码]

使用训练完成的模型对输入的时序数据集预测得到原始的异常分数,高分预测结果将会被标记为异常点。

参数

tsdataset (TSDataset) – 待计算的输入样本。

返回

一个shape为 (n_samples, )的numpy向量,代表数据样本的异常分数。

返回类型

np.ndarray

fit(train_data: TSDataset, valid_data: Optional[TSDataset] = None) None[源代码]

训练一个机器学习模型。

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

  • valid_data (TSDataset, optional) – 验证集。该方法暂未使用,出于接口一致性考虑,保留此参数。

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

预测。

参数

tsdataset (TSDataset) – 待预测的时序数据集。

返回

包含预测结果的时序数据集。

返回类型

TSDataset

default_pyod_ml_dataloader_to_fit_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]

默认的转换函数,用于将一个 MLDataLoader 对象转换为pyod第三方模型`fit`接口可接收的 numpy.ndarray 类型数据。

该方法中会移除输入数据的 in_chunk_len 维度。原因是所有pyod三方模型要求X维度必须为 (n_samples, n_features),其中n_samples、n_features分别与PaddleTS中的batch_size、observed_cov_col_num概念相同。但是PaddleTS构建的样本是一个三维的ndarray向量,其shape为(batch_size, in_chunk_len, observed_cov_col_num),因此需要将第一维(即 batch_size)打平,使其变为2维特征。

参数
  • ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。

  • model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。

  • in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。

返回

转换得到的 numpy array 数据。元组的第一、第二个元素分别代表x_train 和 y_train。

返回类型

Tuple[np.ndarray, Optional[np.ndarray]]

default_pyod_ml_dataloader_to_predict_ndarray(ml_dataloader: MLDataLoader, model_init_params: Dict[str, Any], in_chunk_len: int) Tuple[ndarray, Optional[ndarray]][源代码]

默认的转换函数,用于将一个 MLDataLoader 对象转换为pyod第三方模型`predict`接口可接收的 numpy.ndarray 类型数据。

参数
  • ml_dataloader (MLDataLoader) – 待转换的 MLDataLoader 对象。

  • model_init_params (Dict) – 初始化sklearn模型时需要提供的参数。在数据转换时可能会用到。

  • in_chunk_len (int) – 模型输入的时间序列长度。在数据转换时可能会用到。

返回

转换得到的 numpy array 数据。元组的第一、第二个元素分别代表 x 和 y,其中 y 可能为None。

返回类型

Tuple[np.ndarray, Optional[np.ndarray]]

make_ml_model(model_class: Type, in_chunk_len: int, out_chunk_len: int = 1, skip_chunk_len: int = 0, sampling_stride: int = 1, model_init_params: Optional[Dict[str, Any]] = None, fit_params: Optional[Dict[str, Any]] = None, predict_params: Optional[Dict[str, Any]] = None, udf_ml_dataloader_to_fit_ndarray: Optional[Callable] = None, udf_ml_dataloader_to_predict_ndarray: Optional[Callable] = None) MLModelBaseWrapper[源代码]

基于第三方模型,构建时序模型。

参数
  • model_class (Type) – 第三方模型类的类型。

  • in_chunk_len (int) – 模型输入的时间序列长度。

  • out_chunk_len (int) – 模型输出的时间序列长度。

  • skip_chunk_len (int, optional) – 输入序列与输出序列之间跳过的序列长度, 既不作为特征也不作为序测目标使用, 默认值为0。

  • sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。

  • model_init_params (Dict[str, Any]) – 用于初始化第三方模型的所有参数。

  • fit_params (Dict[str, Any], optional) – 第三方模型的fit接口接收的所有参数,训练集数据除外。

  • predict_params (Dict[str, Any], optional) – 第三方模型的predict接口接收的所有参数,待预测数据除外。

  • udf_ml_dataloader_to_fit_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。任何第三方模型的fit接口如果可以接收 numpy array 作为输入,则可以使用该函数构建训练数据。

  • udf_ml_dataloader_to_predict_ndarray (Callable, optional) – 用户自定义函数,用于将一个 MLDataLoader 对象转换为第三方模型的`fit`接口可接收的 numpy.ndarray 类型数据。任何第三方模型的fit接口如果可以接收 numpy array 作为输入,则可以使用该函数构建训练数据。

返回

封装完成的时序模型对象, 目前支持 SklearnModelWrapper 和 PyodModelWrapper。

返回类型

MLModelBaseWrapper